JavaScript冻结浏览器
JavaScript Freezes The Browser
我试图使一个函数,生成重复的css属性的HTML类使用。该函数分为三个步骤。
- 创建对象:
var obj = new module('prefix', 'suffix');
- 添加几个属性:
- 运行克隆进程:
obj.addProperty('width', 'px', 2);
obj.addProperty('height', 'px', 2);
obj.clone('15', '3');
但是,它没有明显的原因就冻结了。下面是完整的代码:
window.cloner_module = function(prefix, suffix) {
this.properties = []
this.prefix = prefix;
this.suffix = suffix;
this.addProperty = function(option, type, side) {
var array = [];
array.push(option, type, side);
this.properties.push(array);
}
this.clone = function(max, step) {
var array = [];
var entry_count = 0;
var innerModuleArray = [];
var moduleArray = [];
var property;
var option;
var type;
var side;
var value;
var string = "";
for (var i = 0; i < max; i + step) {
innerModuleArray = [];
moduleArray = [];
moduleArray.push('.' + prefix + i + suffix + '{');
for (var y = 0; y < this.properties.length; y++) {
property = this.properties[y];
option = property[0];
type = property[1];
side = property[2];
value;
if (!side) {
value = i;
} else if (side == '1') {
value = type + i;
} else if (side == '2') {
value = i + type;
} else {
console.log('"Side" property must be between 0 and 2');
}
string = option + ": " + value + "; ";
innerModuleArray.push(string);
}
moduleArray.push(innerModuleArray);
moduleArray.push('}');
array.push(moduleArray);
entry_count++;
}
this.clones = array;
this.last_entry_count = entry_count;
this.last_step_registered = step;
this.last_max_registered = max;
}
}
由于for
循环,您的代码进入了无限循环,这反过来又导致浏览器冻结。核心问题是这一行:
for (var i = 0; i < max; i + step)
这里最后一条语句总是等于3(0 + 3),所以循环永远不会结束。你可能想把它改成:
for (var i = 0; i < max; i += step)
此编辑将按照您的初衷,在每次迭代中不断增加i
的step
。
相关文章:
- 为什么继续;语句冻结浏览器
- Javascript-SetTimeout导致浏览器冻结
- 循环的Javascript冻结浏览器,没有语法错误
- AJAX 调用在获得响应并成功执行时会冻结浏览器一段时间
- 如何使用 dojo 在不冻结浏览器的情况下下载文件
- 如何在不冻结浏览器的情况下执行大量javascript代码
- Javascript:在调用服务器时防止浏览器冻结
- AJAX-如何在不冻结浏览器的情况下逐个发出异步请求
- JavaScript函数冻结我的浏览器
- 浏览器使用此JS代码冻结,为什么
- JavaScript锁定功能,以防止递归(浏览器冻结/性能)
- map.fitBounds(边界)导致浏览器冻结
- 我应该如何处理由于大量数据而导致的浏览器冻结
- 多个引导模式使浏览器冻结
- 函数调用自己setInterval(浏览器冻结问题)
- 浏览器冻结了几秒钟
- 防止浏览器冻结和崩溃长时间计算
- JQUERY/JavaScript -故障代码导致谷歌浏览器冻结
- 选择父节点将导致浏览器冻结
- 浏览器冻结是因为(太重?)JavaScript,画布渲染