`
andyhu1007
  • 浏览: 193780 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

IE: Stop running this script?

阅读更多

  问题:

 

  1. 用IE浏览页面,如果一个Javascript method running过长,会跳出:Stop running this script?的error.

 

  2. 而在firefox下完好,速度很快。

 

  原因:

 

  IE不支持XPath ,这是导致prototype的select方法在IE下采用遍历的方式,很慢。XPath和纯粹遍历比起来,速度要快好像不止一个数量级。

 

  解决方案:

 

  使用javascript的setTimeout异步触发可以从running过长的javascript方法中独立的部分,实际上是骗了IE...

 

  异步是王道啊..

 

 

  --------------------------

 

  补充:

 

     1. IE判断javascript运行过长是基于任一个事件触发的javascript运行,而不是在load页面时总的javascript运行时间。

     2. javascript引擎只是一个单一的线程,所以任何在中途触发的异步事件都会被强制排队等待执行。

     3. 所以用setTimeout解决IE error比较适合没有上下文依赖的javascript方法,当然,最好是在当前事件尾部的方法。

分享到:
评论
6 楼 achun 2008-07-03  
请给段代码看看,我还真没有搞明白
5 楼 andyhu1007 2008-07-03  
<div class='quote_title'>achun 写道</div>
<div class='quote_div'>
<div class='quote_title'>andyhu1007 写道</div>
<div class='quote_div'><br/>没错,所以前提是:javascript方法中可以独立的部分。</div>
<p><br/>好像问题比较复杂,<br/>你看看</p>
<p><a href='../../../../../../topic/139428?page=1'>http://www.iteye.com/topic/139428?page=1</a></p>
<p>实际做起来就不是那回事了。</p>
</div>
<p> </p>
<p> </p>
<p>   嗯,谢谢,补充了几句。</p>
4 楼 kimmking 2008-07-02  
xpath是dom方式吧
IE不支持?
3 楼 achun 2008-07-02  
<div class='quote_title'>andyhu1007 写道</div>
<div class='quote_div'><br/>没错,所以前提是:javascript方法中可以独立的部分。</div>
<p><br/>好像问题比较复杂,<br/>你看看</p>
<p><a href='../../../../../../topic/139428?page=1'>http://www.iteye.com/topic/139428?page=1</a></p>
<p>实际做起来就不是那回事了。</p>
2 楼 andyhu1007 2008-07-02  
achun 写道
setTimeout做超时的跳出条件是可以,不过环境变量如何保存呢?
如果是递归的过程呢?
IE的javascript主要慢到正则上了,如果不用正则的话会快很多。


没错,所以前提是:javascript方法中可以独立的部分。
1 楼 achun 2008-07-02  
setTimeout做超时的跳出条件是可以,不过环境变量如何保存呢?
如果是递归的过程呢?
IE的javascript主要慢到正则上了,如果不用正则的话会快很多。

相关推荐

    LESSPrefixer.zip

    .linear-gradient-top(@default,@color1,@stop1,@color2,@stop2[,...) * .linear-gradient-left(@default,@color1,@stop1,@color2,@stop2[,...) * .opacity(@factor) .text-shadow(@args) .transform(@...

    amrhike:用于在数据远足中存储和查询统一的AMR基因组分析结果的概念验证

    stop :where [?e :gene_symbol " catA1 " ] [?e :gene_symbol ?gene] [?e :sample_id ?sample] [?e :analysis_software_name ?tool] [?e :contig_id ?contig] [?e :start ?start] [?e :stop ?stop]] ...这...

    20 六种事件修饰符:stop、prevent、capture、self、once和passive解决冒泡事件.pdf

    20 六种事件修饰符:stop、prevent、capture、self、once和passive解决冒泡事件

    hackingcrashing::stop_sign:首先阅读说明!:stop_sign:所有内容!:stop_sign:

    骇客崩溃 :stop_sign: 我对此概不负责 :stop_sign: 这仅用于黑客实验(可以将随机exe放入文件夹中以测试其他代码)(对不起,我不是sus) 收割机测试:

    支持С++ 20 std :: stop_token来中断阻塞Linux系统调用,而不会引发任何异常。-C/C++开发

    支持С++ 20 std :: stop_token来中断阻塞Linux系统调用,而不会引发任何异常。 简介取消系统调用的想法并不新鲜。 Musl和GLibc实现posix pthread_cancel,它可以终止目标线程,也可以中断系统调用的分支。 对于终止...

    ffwdme.js:[已弃用!]:stop_sign:一个JavaScript工具箱,旨在将交互式GPS行驶方向带到移动浏览器

    :stop_sign: :stop_sign: :stop_sign: 已淘汰 :stop_sign: :stop_sign: :stop_sign: 该项目已弃用,将不再接收更新。ffwdme.js ffwdme.js是一个JavaScript工具包,旨在将交互式GPS行驶方向带到移动浏览器。介绍如需...

    init:rcS post-stop process报错信息

    init:rcS post-stop process(1160) init:rcS post-stop process(923)

    2012英语资料

    17、- Excuse me, can you tell me the way to the bus stop? - _________ A:Yes, go straight down this way to the end. B:Why do you ask me the way? C:Yes, I will. D:No, I can't tell you that. 18、- ...

    Start & Stop Domino 批处理

    两个批处理程序:一个Start Domino;一个Stop Domino。

    NET 命令祥解

    ... .../ y 对命令产生的任何交互提示自动回答“是”,/n 回答“否”。例如,net stop server 通常提示确认是否根据服务器服务结束所有服务,net stop server /y 自动回答“是”并关闭服务器服务。

    DOS命令之——net命令详解

    .../ y 对命令产生的任何交 互提示自动回答“是”,/n 回答“否”。例如,net stop server 通常提示确认是否根据服 务器服务结束所有服务,net stop server /y 自动回答“是”并关闭服务器服务。

    NET命令详细解说

    ... .../ y 对命令产生的任何交互提示自动回答“是”,/n 回答“否”。例如,net stop server 通常提示确认是否根据服务器服务结束所有服务,net stop server /y 自动回答“是”并关闭服务器服务。

    ping 命令祥解

    ping 命令祥解 ... ... .../ y 对命令产生的任何交 互提示自动回答“是”,/n 回答“否”。例如,net stop server 通常提示确认是否根据服 务器服务结束所有服务,net stop server /y 自动回答“是”并关闭服务器服务。

    stop_watch_timer:这是Flutter插件的秒表计时器.:man_running:

    stop_watch_timer 这是秒表计时器。 范例程式码 有关使用stop_watch_timer的完整示例应用程序,请参见示例目录。 安装 将此添加到包的pubspec.yaml文件中: dependencies: stop_watch_timer: 特征 这是...

    NET 命令集Net命令详解

    NET 命令集(1) ... .../ y 对命令产生的任何交互提示自动回答“是”,/n 回答“否”。例如,net stop server 通常提示确认是否根据服务器服务结束所有服务,net stop server /y 自动回答“是”并关闭服务器服务。

    WnMp3.0,nginx+php+mariaDB

    Whimp is the best Windows server, small, efficient, powerful and underrated. ... It should look like this C:\WnMp\ Now run Start_All.bat To Stop broadcasting : Run C:\WnMp\Stop_All.bat

    process-manager

    控制过程,更轻松 流程管理器是一... &gt; python server.py- run: enter the process name located in process directory- status: shows running process- stop: stop process by name- exit: stop all running process

    start-stop-daemon

    -w|--chdir &lt;dir&gt; change the work directory to 'dir' -u|--user |&lt;uid&gt; stop processes owned by this user -n|--name &lt;process-name&gt; stop processes with this name -s|--signal &lt;signal&gt; signal to send ...

    基于Qt实现的本地音乐播放器

    基于Qt实现的本地音乐播放器

    pm2-interactive-ui:pm2的交互式cli

    s) Stop l) Logs h) Help, list all options Answer: # You can pass a filter string to skip the filter prompt $ pm2i foo ? Choose a process ? (Use arrow keys) ❯ :check_mark: foo_proxy :check_mark: ...

Global site tag (gtag.js) - Google Analytics