إن توليد شجرة المحتويات في تطبيق الويب حاليا يعاني من الكثير من المشاكل. أهمها أنها تؤدي إلى تجمد المتصفح.
الأسباب المتوقعة للمشكلة يمكن أن تكون بسبب
نريد عمل prototype نعزل فيه العوامل ونختبرها واحد بعد الأخر.
إن أفضل شجرة كي نختبرها هي الأكبر حجما (ربما نحتاج أيضا إلى الأكثر عمقا) لذا اخترت لسان العرب وملف json المثل لها حجمه نصف ميغا (مقارنة ب 27 كيلوبايث لموسوعة اليهود للمسيري و 150 كيلو بايت لصحيح مسلم)
طريقة الاختبار وضع ملف json أو أي ملفات نحتاجها في ajax كملفات ساكنة. طلب الملف عبر كود javascript وقياس الزمن اللازم لبناء الشجرة بكود يشبه
function buildtree(js) { var treediv1=document.getElementById("treediv1"); var treediv2=document.getElementById("treediv2"); var t1=buildtree_str(treediv1,js); var t2=buildtree_dom(treediv2,js); alert('t1='+t1+", t2="+t2); } /* getJson(true, 'data/lisan.json', {}, buildtree); */ function init() { getJson(true, 'data/j1.json', {}, buildtree); return false; }
حيث تقوم الدالة buildtree_str بعمل ما يشبه
var t=new Date(); t1 = t.getTime(); /*...*/ t=new Date(); t2 = t.getTime(); return t2-t1;