Chrome,Safari在从本地存储读取时挂起,而Firefox很好
Chrome, Safari hangs while reading from localStorage while Firefox is good?
我有以下代码,单击Queue
时会触发
$('#queue').click(function(){
$("#feature").load("templates/queue.html", function(){
var template = $('queue_item').clone();
if (localStorage['queue'] == null) {
$('.queue_list').append('<p>You have not added any video to the queue yet</p>');
} else {
var queue_list = JSON.parse(localStorage['queue']);
for (var i = 0; i < queue_list.length; i++) {
console.log(queue_list[i]);
var item = fill_queue_item(queue_list[i]);
$('.queue_list').append(item).fadeIn('slow');
}
}
});
});
- 根据添加到队列的用户
items
数,此代码创建一个节点并插入到queue_list
- 当我在Firfox上测试时,事情还不错,但是Safari和Chrome几乎死了才能执行相同的操作。
问题- 我怎样才能让Chrome和Safari像Firefox一样快乐,并让他们快速完成工作?
更新
function fill_queue_item(data) {
var template = $('.queue_item').clone();
template.removeClass('hide-item');
template.find('img').attr('src', data.thumbnail);
template.find('.title').html(data.title);
template.attr('id', data.url);
template.addClass('view-item');
return template;
}
该queue
可以包含任意数量的项目,但对于Chrome/Safari,它不超过20
我建议更改:
var template = $('.queue_item').clone();
对此:
var template = $('.queue_item').first().clone();
你现在拥有它的方式,你正在克隆每一个.queue_item
所以随着你添加越来越多的,你正在创建很多不必要的克隆,而你实际上只是想每次创建一个新克隆作为模板。 如果每次对之前的结果执行此操作 20 次,则最终可能会得到2^20
个克隆元素,这些元素将超过 100 万个对象。
相关文章:
- JavaScript执行暂时挂起页面
- 是定义的操作系统睡眠/挂起期间setTimeout的行为
- Chrome浏览器“;挂起”;同时在循环中执行AJAX请求
- fullcalendar在删除导致浏览器挂起的多个事件时速度较慢
- 应用将图表转换为图像的jqplot代码时Chrome挂起
- 如何在不使用Internet Explorer的情况下从未挂起的HTML文件执行程序
- MongoDB collection.find()查询挂起
- 使用子字符串方法时应用程序挂起的原因
- 如何在AngularJS中取消挂起的请求
- 从node.js应用程序调用Mongoose Model.save()时挂起
- Chrome,Safari在从本地存储读取时挂起,而Firefox很好
- IE 10 挂起 XMLHttpRequest 6 分钟,然后响应请求(使用 AngularJS 实现 CRSF)
- writeln img src将数据提交到外部系统-Firefox和IE挂起
- onbeforeunload 循环并挂起 Firefox
- Firefox在重for循环期间挂起
- Firefox 在 Docker 中打开 Karma Server URL 后挂起
- 不能调试挂起$.Post在firefox扩展
- Firefox 在无限循环中挂起,并忽略 window.print() 上的 css
- 在Chrome / Safari下载文件期间$ajax调用挂起,而不是在IE / Firefox中
- Facebook javascript FB.ui请求在IE11和Firefox上挂起