如何在浏览器中避免停止脚本错误

How to avoid stop script error in browsers

本文关键字:脚本错误 浏览器      更新时间:2023-09-26

我有一个超过2500个锚标签的页面要处理。现在在IE中,它抛出停止脚本错误。可以成批做吗?用500来执行,然后再用500来执行?

ajaxLinks : function(el, flag) {
    var links = $(el).find('a');
    var notLinkAr=["a[href^=javascript]","#toolbarId ul li>a","#tool_settings .link a",".page-action-links li>a","#tool_settings .label a",".success-map .success-tabs li>a",".success-map .sm_loggedin li>a", ".analyst_cat li>a",".modal",".layer",".newpage",".close",".hideFromPopup",".pagenum",".next",".prev",".delete_src",".tips","#hidr","#backr"];
    $(notLinkAr).each(function(index){
        var notLinkI=$(notLinkAr[index]);
        if($(notLinkI).is("a")){
            if($(notLinkI).length>0){
                $(notLinkI).each(function(index1){
                        $(notLinkI[index1]).addClass("dontAjaxify");
                });
            }
        }
    });
     $(links).each(function(i, obj){
        var link = $(obj);
        if(!$(obj).hasClass('dontAjaxify')){
           link.attr('rel', link.attr('href'));
            var rellnk = link.attr('rel');
            if(flag=='ajaxified') {
                if(/http/.test(rellnk)){
                    var relurl;
                    relurl=rellnk.replace((window.location.protocol + "//"+ window.location.hostname),'')
                    link.attr('rel', relurl);;
                }
            }
            link.bind('click', function(e){}

我正在为页面中的所有锚标记(2500)添加一个类。

jQuery的.slice可以帮到你。http://api.jquery.com/slice/

var count = 0;
var ajaxify = function (el, flags) {
    var links = $(el).find('a').slice(count, count + 500);
    count = count + 500;
    // Do the processing here
    if (links.length) {
       // Call it next time only if some data is returned in the current call
       setTimeout("ajaxify()", 5000);
    }
}

上面的代码没有经过测试,但应该可以工作。