- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
当心异步刷新后的脚本文件加载
???? 重现问题 ?? ?? 我们现在编写一个示例来重现一个异步刷信的问题。 ?? ?? 首先,我们建立一个名为“ScriptHandler.ashx”的Generic Handler,它的作用是模拟一个脚本文件。可以看出,加载这么一个脚本文件是一个很耗时的操作。
??ScriptHandler.ashx ??%@ WebHandler Language=C# Class=ScriptHandler % ?? ??using System; ??using System.Web; ?? ??public class ScriptHandler : IHttpHandler ??{ ?? public void ProcessRequest (HttpContext context) ?? { ?? context.Response.ContentType = text/javascript; ?? System.Threading.Thread.Sleep(3000); ?? context.Response.Write(Sys.Application.notifyScriptLoaded();); ?? } ?? ?? // ... ??}? ?? 然后我们创建一个简单的页面,放置一个UpdatePanel和两个按钮。 Page
??asp:UpdatePanel ID=UpdatePanel1 runat=server ?? ContentTemplate ?? %= DateTime.Now %br / ?? asp:Button ID=Button1 runat=server Text=Load Script File ?? OnClick=Button1_Click / ?? asp:Button ID=Button2 runat=server Text=Partial Rendering ?? OnClick=Button2_Click / ?? /ContentTemplate ??/asp:UpdatePanel?? ?? 下面的代码是响应按钮Click事件的实现。当我们点击“Load Script File”按钮时,ScriptHandler.ashx会被作为脚本文件添加到页面上。而“Partial Rendering”则会发起一个需要等待很长时间的异步刷新。
??Event Handler ??protected void Button1_Click(object sender, EventArgs e) ??{ ?? ScriptManager.RegisterClientScriptInclude(this.Page, this.GetType(), key, ?? ScriptHandler.ashx?m= + new Random(DateTime.Now.Millisecond).Next()); ??} ?? ??protected void Button2_Click(object sender, EventArgs e) ??{ ?? Thread.Sleep(5000); ??}? ?? 您可以点击这里下载这个重现问题的示例并将它部署在您的机器上,您也可以点击这里察看这个页面。请一步一步跟着我来浏览这个页面,我会示范一下这个问题。 ?? ??打开页面,我们可以看到时间和两个按钮。 ??点击“Load Script File” 按钮,并等待时间更新。 ??在时间更新后,点击“Partial Rendering” 按钮。 ?? 一般来说,最后一步之后大约5秒多钟,时间将会被跟新。但是现在您会发现,直到您重新点击某个按钮之后时间才会更新。事实上最后一步的任何操作,例如脚本加载,Hidden Field的注册都失败了,客户端生命周期的事件也不会触发。????原因何在? ?? ?? 在我分析客户端异步刷新的机制之前,我想简单的解释一些JavaScript语言和DOM操作的基本特性。使用JavaScript来操作页面中的DOM是AJAX技术的基础。有人说,JavaScript编程是没有多线程的,因此我们能够认为它始终线程安全。我同意这一点。JavaScript的编程模型的确没有多线程的机制,它是线程安全的——从理论上来说的确是这样。 ?? ?? 但是,使用JavaScript进行编程还是会遇到同步问题,因为有些操作是异步得,尤其是在我们作一些DOM操作时。在AJAX编程中最著名的异步操作自然就是XMLHttpRequest对象的send方
您可能关注的文档
- 建筑工地食堂现场核查表.doc
- 建筑工程估价 钢筋工程.ppt
- 建筑工程测量试卷17.doc
- 建筑推荐书目.doc
- 建筑新旧融合展新貌.docx
- 建筑材料用量常识.doc
- 建筑测量知识.docx
- 建筑清工.doc
- 建筑物室内高度测量记录.doc
- 建筑物综合布线PPT.ppt
- 注册验船师高频真题题库2025.docx
- 注册验船师高频题库带解析2025.docx
- 注册验船师考试必备资料2025.docx
- 注册验船师精选题库带分析2025.docx
- 注册验船师考前冲刺必刷题附答案2025.docx
- 新高考生物二轮复习讲练测第10讲 人体的稳态与免疫调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第13讲 生物技术与工程(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第7讲 遗传的基本规律与伴性遗传(检测)(原卷版) .docx
- 新高考生物二轮复习讲练测第13讲 生物技术与工程(检测)(原卷版).docx
最近下载
- 课题申报书:美育浸润一体化共建行动研究.docx VIP
- 人工智能生成内容(AIGC)研究综述:国际进展与热点议题.pdf VIP
- 课题申报参考:“浸润”指向下湖北省大中小学美育一体化研究.docx VIP
- (二模)2025年广州市普通高中毕业班综合测试(二)地理试卷(含答案).docx
- 网约车商业计划书.docx VIP
- DB11_T 455-2021 动物疫病紧急流行病学调查技术规范.pdf
- 网约车商业计划书.docx VIP
- 北洋军阀统治时期.pptx VIP
- 【2019年整理】新HSK考试4级试题样卷听力材料及答案.doc VIP
- 省级优秀课件大象版小学心理健康六年级《我的情绪我做主》.pptx
文档评论(0)