Я работаю над редизайном портфолио, и у меня есть немного JS, который генерирует большое количество (около 300) элементов div, стилизует их и добавляет к телу.Это работает быстро и идеально в браузерах webkit, но когда дело доходит до Firefox, он медленный до чертиков.
Я пытался выяснить, почему Firefox не может справиться с этим, и я попытался объединить все div'ы 'html в виде строк и затем добавление всего этого к телу, но это оказалось медленным или медленным.
Если вы хотите увидеть проблему вживую, мой сайт - здесь
Вот соответствующие биты кода:
get_bokeh возвращает строку стилей CSS, описывающую один кусок "bokeh".
function generate(){
$("#bokeh_container").remove();
if (q==0){
min = 30,
max = 30,
bokeh_count = 1;
}
else if (q==1){
min = 7,
max = 10,
bokeh_count = 300;
}
else if (q==2){
min = 7,
max = 15,
bokeh_count = 300;
}
else if (q==3){
min = 8,
max = 11,
bokeh_count = 500;
}
sum = min+max;
window_width = $(document).width();
window_height = $(window).height();
colorful = $("#colorful").attr("checked");
var container = $("<div />",{"id":"bokeh_container","style":"width:100%; height:100%; position:absolute; left:50%; margin-left:-600px; top:0px; z-index:1; display:none; "});
for( var i=0;i<bokeh_count;i++){
$("<div />",{"class":"bokeh","style":get_bokeh()}).appendTo(container);
}
container.appendTo("body").show();