我从Firefox"Unresponsive script"收到错误消息.此错误是由于我添加到我的页面的一些JavaScript.
我想知道无响应是否仅由代码循环引起(函数周期性地相互调用或无休止地"循环")或者可能有其他原因?
你能帮我调试一下这些错误吗?
谢谢
我想在浏览器中对一些Javascript代码进行基准测试,但它可能会触发Firefox的"警告:无响应脚本"弹出窗口.这允许用户在浏览器陷入失控功能的情况下单击"停止脚本".显示弹出窗口时,当前正在运行的功能已停止.这不是理想的,所以有没有办法以不同的方式运行我的基准测试,以便Firefox不会弹出此警告并破坏我的结果?
我有一个客户端javascript函数,它是一个按钮点击触发(基本上,它是一个计算器!!).有时,由于页面上的大量数据,javascript计算器功能需要很长时间并使页面对用户显示为非活动状态.我打算在整个页面上显示一个透明的div,可能带有一个忙碌的指示器(在中间),直到计算器功能结束,这样用户就会等到过程结束.
function CalculateAmountOnClick() {
// Display transparent div
// MY time consuming loop!
{
}
// Remove transparent div
}
关于如何解决这个问题的任何想法?当我的计算器函数启动时,我应该使用javascript将div类分配给div(它包围我的整个页面的内容)吗?我试过了,但没有得到理想的结果.面对IE 6中的透明度问题.另外,我将如何在这样一个透明的div中显示加载消息+图像?
TIA
我需要在我的页面上运行超长JavaScript.客户端抱怨IE显示脚本太长的警告对话框.不幸的是,我们无法减少脚本的长度,所以我试图找到问题的旁路.
根据微软支持网站:
IE跟踪已执行脚本语句的总数,并在每次启动新脚本时重置该值,例如从超时或事件处理程序.当该值超过阈值量时,它会显示"长时间运行的脚本"对话框.
但是我尝试使用setInterval()和setTimeout()将我的脚本分成几部分,但没有一个正常工作.我使用的浏览器是IE8.我的代码如下:
<html>
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js"></script>
</head>
<body>
<div id ="test"></div>
<div id ="log"></div>
</body>
<script>
var repeat =0;
function heavyTask(){
if (repeat<50){
y = longRun();
setTimeout("heavyTask()",100);
}else{
$('#test').html("done!");
}
}
function longRun(){
for(var i =0; i<20000;i++){ }
repeat++;
$('#log').append('<div>repeat: '+ repeat +'</div>');
};
$(document).ready(function () {
setTimeout("heavyTask()",100);
});
</script></html>
Run Code Online (Sandbox Code Playgroud)
为了使代码有效,您必须编辑Registry,转到HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Styles,并将名为"MaxScriptStatements"的DWORD值设置为100,000.如果样式键不存在,请创建一个名为样式的新键.
谢谢,
当javascript函数完全加载时,如何在jQuery测试?我想使用一个gif,它显示加载,同时加载javascript函数,并在函数完全加载时隐藏它?
我有一个包含100多个列表项的表单,我必须在提交时重新排序.以下代码用于重新排序我的列表,而在Firefox中没有任何明显的问题; 但是,IE会提示消息"此页面上的脚本导致Internet Explorer运行缓慢.如果继续运行,您的计算机可能会无响应.您要中止脚本吗?" 如果用户单击"否",脚本将按预期工作.
var listitems = $(form).find('li').get();
listitems.sort(function(a, b) {
var compA = $(a).attr('id');
var compB = $(b).attr('id');
return (compA - compB);
});
Run Code Online (Sandbox Code Playgroud)
关于如何提高效率的任何想法?