在从基页的异步回发上注入javascript
我们的应用程序中有一个所有其他页面都源自的基页。我们已经在数据库中为每个页面请求插入了一条记录,以跟踪应用程序使用情况统计数据。现在我们还想记录页面呈现后的一些数据,因此我们通过以下方式向页面中注入了一些javascript:在从基页的异步回发上注入javascript,javascript,asp.net,ajax,Javascript,Asp.net,Ajax,我们的应用程序中有一个所有其他页面都源自的基页。我们已经在数据库中为每个页面请求插入了一条记录,以跟踪应用程序使用情况统计数据。现在我们还想记录页面呈现后的一些数据,因此我们通过以下方式向页面中注入了一些javascript: ScriptManager.RegisterStartupScript(this, this.GetType(), "readyTime", sReady, true); 这将向脚本中注入一些jQuery,其中说明“当window.load事件触发时,向Web服务发送一
ScriptManager.RegisterStartupScript(this, this.GetType(), "readyTime", sReady, true);
这将向脚本中注入一些jQuery,其中说明“当window.load事件触发时,向Web服务发送一些数据,以便我们知道页面下载到客户端并呈现所需的时间
它适用于初始页面请求,但不适用于异步回发。我添加了以下代码:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args)
{
// webservice call here
}";
问题是,异步代码确实在异步回发结束时触发,但它用于日志项的密钥与初始请求中的密钥相同。生成页面时,页面中的javascript被赋予一个键,并且javascript没有被更新。我设置了一个断点,并且正在执行ScriptManager调用,但是页面上的脚本在每次回发后都保持不变
有人知道这是否可能吗
编辑:我看到这个帖子:
但是因为我在一个基本页中,我不确定是否能确切地找出是哪个控件导致了回发。(至少我尝试使用的代码uu EVENTTARGET不起作用,因为有时它隐藏在用户控件或网格中)如果使用ScriptManager,则可以使用以下代码段
if(ScriptManager.GetCurrent(this.Page).IsInAsyncPostBack)
{
...
}
但我知道这是一个异步回发。我只需要在异步回发上使用新键更新javascript。javascript中的键永远不会更改。