에 시도 크롬 http://senchafiddle.com/#gxtZ9에
봅니다 자바 스크립트가 응답하지 간 생각한다. 내 쿼드 코어 데스크톱에서 처리하는 데 몇 초가 걸립니다.
당신은 덩어리로 그것을 깰 브라우저이 같은 각 청크 사이의 (a setTimeout
와) 호흡을 줄 수 있습니다. 데모 위치 : http://jsfiddle.net/jfriend00/XFgAa/. 이것은 모든 행에 document.write()
을 사용하는 이전 버전보다 몇 배 더 빠릅니다. 객체의 데이터를 누적하고 한 번에 하나의 DOM 작업에 모두 추가하므로이 새로운 버전의 DOM 작업 수가 1/27이되기 때문입니다.
function addBigData() {
// populate big array
var items = [], i;
for (i = 0; i < 5000; i++) {
var data = {};
for (var j = 1; j <= 8; j++) {
data["prop" + j] = "Some Big Data " + j;
}
var item = {};
item.data = data;
items.push(item);
}
i = 0;
function addNextChunk() {
var chunkEnd = Math.min(i + 20, items.length);
var chunk = [], item;
while (i < chunkEnd) {
item = items[i++];
chunk.push("Item " + i);
chunk.push("<br />");
for (var prop in item.data) {
chunk.push(" ");
chunk.push(prop + " = " + item.data[prop]);
chunk.push("<br />");
}
chunk.push("<br /><br />");
}
var div = document.createElement("div");
div.innerHTML = chunk.join("");
document.body.appendChild(div);
if (i < items.length) {
setTimeout(addNextChunk, 1);
}
}
addNextChunk();
}
addBigData();
참고로, 모바일 브라우저에서 사용 가능한 메모리 나 더 빨리 당신이 정말로 페이지 또는에 데이터의 거대한 양을 넣어해서는 안 있도록 데스크톱 브라우저로보다 로컬 스토리지 몇 가지 한계를 명중합니다 로컬 저장소에 저장합니다.
나는 내 휴대 전화에서 5000 것들의 목록을 통해 플립 싶어 모르겠어요. – Pointy
그것은 단지 사파리를 무의미하게 던지고 강제로 닫을 수 있습니다. – Neutralizer
네이티브 대 웹 성능의 증거로 이것을 사용하는 것은 조금 우스꽝 스럽습니다. – sciritai