我必须在我的asp.net页面中触发一个方法。条件是当在客户端的浏览器中加载页面时,此方法必须触发,客户端可以看到它。我能在服务器方面做些什么以及在客户端可以做些什么?
答案 0 :(得分:4)
服务器不知道浏览器何时显示该页面 但是,您可以包含指向服务器端脚本的图像。
在客户端上,您可以使用load
事件。
答案 1 :(得分:4)
听起来,实现自动运行服务器端代码的最快捷最方便的方法是将部分页面包装在UpdatePanel中,并设置Timer控件以触发UpdatePanel回发并运行代码。 / p>
的示例,请参阅using the Timer control to trigger an UpdatePanel上述解决方案将加载页面,然后您的客户端看到该页面似乎是动态更新的。现在,如果您确实需要您的客户端查看正在进行的操作,那么一旦页面加载,您将需要在客户端上运行代码,该代码将调用将运行您的代码的服务器上的Web服务。 / p>
答案 2 :(得分:4)
您还可以将您的方法装饰为web方法,并在页面加载完成后通过javascript调用它。
答案 3 :(得分:2)
您可以使用JQuery来确定页面是否非常容易在客户端加载;
$(document).ready(function()
{
//page is fully loaded and ready, do stuff here
}
服务器端:您可以结合使用WebMethod,JSON和Javascript(AJAX)
概念客户端:
//////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
的更深入的文章