23-06-2006, 16:21
|
|
|
חבר מתאריך: 25.08.03
הודעות: 9,114
|
|
שמתי לב שעבור פניה לאלמנטים אתה משתמש בשיטה שהצגת כאן בעבר כיעילה יותר במבחן ביצועים שערכת ושיתפת אותנו בה.
אמנם שיטה זו מהירה יותר ביחס לאחרות, אך עדיין שמירת מצביע לאלמנט (כמו שאתה אוהב לשמור את document במשתנה d) תהיה מהירה יותר, לא כך ?
לכן לדעתי באלמנטים קבועים, כגון בדף הזה שידוע מראש שיעשה שימוש מספר פעמים באלמנטים מסויימים, אני מיד בטעינת הדף שומר מצביע לאלמנט בתוך משתנה וכך חוסך כל פעם את הקריאה לפונקציה $
אני כמובן יעשה זאת כך:
קוד:
<script type=\"text/javascript\">
//<[CDATA[
var d = document;
var Pool = {};
var oLink, oImg, imgLen;
window.onload = function() {
oLink = $('oLink');
oImg = $('oImg');
imgLen = aImages.length;
setInterval("random_imglink()", 5000);
}
function $(sId)
{
if(oValue = Pool[sId])
return oValue;
else
return Pool[sId] = d.getElementById(sId);
}
//]]>
</script>
כפי שאתה רואה שיכתבתי את הפונקציה $, תעדכן אותי אם פיספסתי משהו, כי אני לא רואה שהפעולה שלו שונה במשהו מהפעולה של הפונקציה אותה כתבת.
לגבי imgLen = aImages.length אני לא סגור, בכל זאת מדובר במאפיין של המערך ולא בשיטה (method), כך שזה אמור להיות דומה למהירות קריאה ממשתנה, אך אני חושש שבכל זאת בכל קריה למאפיין הזה של המערך המערך עובר "בדיקת אורך", או שמא המאפיין שמור בהגדרות המערך, לא בדקתי, אשמח למידע נוסף ממי שיודע על כך במדוייק.
נערך לאחרונה ע"י ישראל K בתאריך 23-06-2006 בשעה 16:25.
|