在浏览器中加载asp.net页面时触发哪个事件
问题描述:
我必须在asp.net页面中触发一个方法。条件是当页面加载到客户端浏览器并且客户端可以看到它时,此方法必须触发。我可以在服务器端做什么以及我可以在客户端做什么?在浏览器中加载asp.net页面时触发哪个事件
答
您可以使用JQuery来确定页面是否非常容易地加载客户端;
$(document).ready(function()
{
//page is fully loaded and ready, do stuff here
}
服务器端:您可以利用,JSON和Javascript(AJAX)
理念客户端一个WebMethod的组合:
//////INLINE YOUR ASPX PAGE
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
function ConsumeWebService()
{
SampleService.TehMethod();
}
$(document).ready(function()
{
//page is fully loaded and ready, do stuff here
}
</script>
//////////////////
概念服务器端:
<%@ WebService Language="C#" Class="SampleService" %>
using System;
using System.Web;
using System.Web.Services;
using System.Xml;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class SampleService: System.Web.Services.WebService
{
[WebMethod]
public void TehMethod()
{
//do stuff server-side here
}
}
这是一个更深入的文章关于过程http://msdn.microsoft.com/en-us/library/bb515101.aspx
答
服务器不知道浏览器何时显示页面。
但是,您可以包含指向服务器端脚本的映像。
在客户端上,您可以使用load
事件。
答
听起来你自动运行服务器端代码的最快速和最简单的方法是将你的页面的一部分包装到UpdatePanel中,并设置一个Timer控件来触发UpdatePanel来回发和运行你的代码。
为using the Timer control to trigger an UpdatePanel
一个例子见this link上述解决方案将加载页面,然后你的客户看到页面显示动态更新。现在,如果您真的需要您的客户端到,请参阅发生了什么,然后一旦加载页面,您将需要在客户端上运行代码,以便在运行代码的服务器上调用Web服务。
答
您也可以将您的方法作为webmethod装饰,并在页面加载完成后通过javascript调用它。
虽然这是一种更“手动”的做事方式,但它比使用UpdatePanels更有效 - 如果您打算执行任何严肃的ASP.NET编码(或一般的Web开发),它绝对值得浏览网页服务。请参阅[如何:使用WebMethod属性](http://msdn.microsoft.com/zh-cn/library/byxd99hx.aspx),[托管代码中的Web服务的代码模型](http://msdn.microsoft.com/zh-cn/ .com/en-us/library/68zt3df9.aspx)和[如何从浏览器访问XML Web服务](http://msdn.microsoft.com/zh-cn/library/45fez2a8.aspx) – 2011-02-16 01:21:46