Dojo xrget-sync:true调用冻结IE UI,而FF工作正常
Dojo xhrget sync:true calls freeze IE UI, while FF works fine
我正在编写一个简单的基于dojo的应用程序,在该应用程序中,我使用setTimeout(clearMessage())方法在UI(jsp)上显示一些"进行中"消息和微调器,以显示消息一段时间。
在Firefox上,xhrGet调用暂时转到服务器并返回,向用户显示操作正在进行中的消息。操作响应状态后,消息将更新为"操作成功完成"。
但在IE上,我看到一旦xhrGet调用被发送,IE UI就会冻结,直到服务器返回响应。由于这种行为,我的"进行中"消息根本不会出现在IE上。
我还读到一些评论,一些浏览器可以通过这种方式冻结Ajax的同步调用。调用在internet explorer中冻结UI,但在firefox中效果良好。有没有一种方法,我可以在IE上显示我的"进行中"消息,同时保持xhrGet的同步:真正的攻击?
感谢您的帮助?
提前谢谢。
您永远不应该在同步模式下使用XmlHttpRequest。这样做导致浏览器挂起和强制关闭的比例很大:https://web.archive.org/web/20111103102354/http://blogs.msdn.com/b/ieinternals/archive/2011/08/03/do-not-use-xmlhttprequest-in-synchronous-mode-unless-you-like-to-hang.aspx。这是因为同步模式会阻塞UI线程,直到返回HTTP响应;UI线程是运行JavaScript的地方,也是生成UI更新和对用户输入事件的响应的地方。
相反,您应该以异步模式编写代码,并在返回响应时使用回调来更新UI。
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- 使用一个Javascript函数提交多个表单可以在FF中工作,而不需要其他浏览器
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- 可以'我没有集中精力在FF工作
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- jQuery不在Chrome中运行,在FF中工作
- window.location在IE9和FF中的工作方式不同
- 在<a>IE和FF不工作
- PHP/JavaScript 检查/取消检查在 FF 中工作,但在 IE 中不起作用
- Cookie不是在Safari,ios中设置的,而是在ie,ff,chrome中工作
- event.preventDefault();停止在FF工作
- 用于<脚本>在FF工作,而不是IE
- jQuery类更改未在IE中触发?镀铬/FF工作符合设计要求
- Dojo xrget-sync:true调用冻结IE UI,而FF工作正常
- InnerHTML没有'我不在FF工作
- jQuery ajaxSend()在FF工作,但不是Chrome
- jQuery不需要的排序数组输出在Chrome和IE (FF工作良好)
- 第二个Javascript表单POST在Chrome浏览器失败,在IE和FF工作
- 无法在Chrome上显示预填充的输入值- FF工作正常
- 选项OnClick在IE中不工作?但是在FF工作