שלח תשובה

זירת השאלות

611
צפיות
2
תשובות

onKeyUp ו-ajax

,‏ 25 ביולי, 2008

שלום,

אני מפעיל פונ' באירוע של onKeyUp, בפונ' עצמה עשיתי השהייה לפעולה שאני רוצה לעשות באמצעות setTimeout – הפעולה היא פנייה לשרת ושליפת נתונים (ajax).
האם בכל פעם שאני מקליד אות נוספת, יש שוב פעם השהייה ופנייה לשרת, או שהsetTimeout מתאפס בכל אות נוספת שאני כותב?
במידה וכן יש השהייה, איך אני יכול למעט בפניות לשרת?

תודה

תגיות:

2 תשובות

  1. ניר טייב הגיב:

    אתה צריך לסגור את ה-timer שפתחת…
    בעזרת clearTimeout:


    function doX(){ … }

    var timer = setTimeout(doX, 500);
    clearTimeout(timer);

  2. RoboDog הגיב:

    זה לא מתחדש
    אתה צריך לכלול בתחילת הפונקציה של הonKeyUp את ביטול הקריאה הראשונה.

    אתה יכול לעשות את זה כך:
    someName = setTimeout(FunctionName, interval)

    וכאשר היוזר לוחץ שוב פעם על מקש
    clearTimeout(someName)

    אבל במקום זה, אם את ה מנסה לבדוק תאימות מול המסד נתונים, אולי תחכה פשוט שהיוזר ייצא מתוך השדה, ואז תפעיל אז זה פשוט ב-onBlur .

    בהצלחה

שלח תשובה