ABA


"שאלה ב JS.. בעיה בפונקציה אחרי קריאה של AJAX"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10907 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10907
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   09:38   25.09.12   
אל הפורום  
  שאלה ב JS.. בעיה בפונקציה אחרי קריאה של AJAX  
 
   ערכתי לאחרונה בתאריך 25.09.12 בשעה 09:43 בברכה, inno3D
 
יש לי איזה בעיה באתר שאני עושה

יש לי עמוד עם id=explore
עכשיו יש לי כפתור שלחיצה מביאה אותי לעמוד אחר עם id=profile
ואני רוצה לעשות שבעמוד החדש יהיה
שם פרטי:
שם משפחה:
ואימייל:
וליד כל אחד יהיה את הפרטים המתאימים מהמקום המתאים ב local storage(זה לא בעיה)
הבעיה היא שכנראה יש איזה בעיה בזמן שהפונקציה נטענת
בגלל שאני לא רואה את הפרטים..
רק אם אני עושה "back" ונכנס שוב לעמוד profile אני רואה את הפרטים המתאימים

הצלחתי לסדר את זה בנתיים ששמתי את העמוד profile באותו עמוד של explore
אבל אז זה לא קורא ב AJAX
כאילו אני חייב שזה יהיה עמוד נפרד
ולא באותו HTML (ברור שאחרי הקריאה ב AJAX הם יהיו באותו עמוד אבל אני צריך את זה דינמי)

*אני עובד גם עם JQTUOCH אם זה משנה


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  העמוד נטען ב-AJAX אבל בלי תוכן? Ice Cold  25.09.12 11:49 1
     נטען אבל השדות ריקים inno3D 25.09.12 11:54 2
         ב-profile איך השדות מתמלאים? עם onload? Ice Cold  25.09.12 12:57 3
             עשיתי בפונקציה שאני מכניס לשדות באופן דינאמי value='''' inno3D 25.09.12 13:37 5
         קודם כל לא הבנתי למה אתה משתמש בlocalStorage כדי לשמור יוחאי 25.09.12 13:12 4
             בעבודה הזאת אני צריך להשתמש ב LOCAL STORAGE inno3D 25.09.12 13:38 6
             יש דרך לבדוק את זה בצורה אחרת? inno3D 25.09.12 14:39 7
                 תראה חסר הרבה מידע אבל אני אנסה בכו''ז, יוחאי 25.09.12 15:19 8
                     אוקי אני אבדוק, תודה! inno3D 26.09.12 15:43 9
                 תשים טיימר ShlomiC 29.09.12 17:59 11
  תראה את הקוד.. בטח חסר לך document.ready dvir8 27.09.12 10:29 10

       
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   11:49   25.09.12   
אל הפורום  
  1. העמוד נטען ב-AJAX אבל בלי תוכן?  
בתגובה להודעה מספר 0
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   11:54   25.09.12   
אל הפורום  
  2. נטען אבל השדות ריקים  
בתגובה להודעה מספר 1
 
   ערכתי לאחרונה בתאריך 25.09.12 בשעה 11:57 בברכה, inno3D
 
כאילו ישר שאני נכנס לעמוד profile
הליחצה על הכפתור מפעילה פונקציה
ששמה בשדות ערכים של המשתמש.. שם משפחה ושם פרטי
יעני בשביל שהוא יוכל לערוך אותם

אבל מה שקורה בטח הקריאה הזאת מתבצעת לפני שכל ה div הזה נטען
ואז השדות ריקים
(אם אני עושה BACK ולוחץ שוב אז זה סבבה כי ה div כבר נטען לקובץ HTML)


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   12:57   25.09.12   
אל הפורום  
  3. ב-profile איך השדות מתמלאים? עם onload?  
בתגובה להודעה מספר 2
 
אם כן - אתה פשוט צריך לזהות סיום מעבר עמוד לעמוד החדש, ואז להריץ את אותה הפונקציה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   13:37   25.09.12   
אל הפורום  
  5. עשיתי בפונקציה שאני מכניס לשדות באופן דינאמי value=''''  
בתגובה להודעה מספר 3
 
   איך אני מזהה שהטעינה נגמרה ואז להריץ את הפונקציה?
אי אפשר להשתמש ב $.ready.. כי זה לא בהתחלה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
יוחאי
חבר מתאריך 30.12.15
163 הודעות
   13:12   25.09.12   
אל הפורום  
  4. קודם כל לא הבנתי למה אתה משתמש בlocalStorage כדי לשמור  
בתגובה להודעה מספר 2
 
   את הפרטים של המשתמש, מעבר לחוסר בטיחות שיש עם זה, הוא מוגבל ל5 מגה והוא עובד פר דומיין.

לגבי הבעיה שלך, אם זה קורה בגלל שהHTML לא מוכן עדיין, אתה יכול לשים את הסקריפט בתוך התג BODY (בסוף אחרי כל הרנדור של הHTML), אתה יכול להשתמש בDOMContentLoaded כדי לדעת מתי הDOM מוכן.

בכל אופן תעביר את הפרטים לDATABASE


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   13:38   25.09.12   
אל הפורום  
  6. בעבודה הזאת אני צריך להשתמש ב LOCAL STORAGE  
בתגובה להודעה מספר 4
 
   סתם לתרגול של אפליקציה לאייפון..
לדמות דאטה בייס

אוקי אני אבדוק את הפונקציה הזאת

תודה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   14:39   25.09.12   
אל הפורום  
  7. יש דרך לבדוק את זה בצורה אחרת?  
בתגובה להודעה מספר 4
 
   כאילו שהעמוד id=profile נטען
אני נשאר באותו עמוד HTML רק בכתובת מופיע
index.html#profile

כלומר אני נמצא באותו עמוד
רק שהתווסף לו DIV עם id חדש ופשוט אני מציג רק את ה DIV הזה ספציפית
אני לא רוצה לשנות את הקוד של ה DIV של profile
אני רוצה שישאר בו רק ה HTML

יש איזה דרך להגיד שפונקציה תקרא רק אחרי שיש לי בעמוד את ה id=profile?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
יוחאי
חבר מתאריך 30.12.15
163 הודעות
   15:19   25.09.12   
אל הפורום  
  8. תראה חסר הרבה מידע אבל אני אנסה בכו''ז,  
בתגובה להודעה מספר 7
 
   אתה מבקש באמצעות AJAX עמוד HTML ורוצה לדעת מתי הבקשה הסתיימה וקיבלת את הHTML?

בעצם אם אתה משתמש בjQuery אז יש לך 2 דרכים:

אם אתה משתמש ב$.ajax אתה יכול להעביר property של success שהוא בעצם פונקציה אנונימית שנקראת ברגע שהHTML שלך מגיע ואתה מכניס את התוכן לאתר, בדיוק אחרי שאתה מכניס את התוכן זה הזמן לעשות את השליפה מהlocalStorage ולהכניס את הנתונים אל תוך הHTML.

אתה יכול להשתמש בjQuery Deffered Objects כדי לדעת מתי הבקשת של הAJAX הסתיימה.

זה כמובן בהנחה שאתה אחראי על הקוד שמבצע את הAJAX.

אם אתה לא עובד עם jQuery ואתה מבצע את הבקשה ישירות אז תקרא על onreadystatechange שם אתה בעצם מעביר callback שדרכו אתה בודק את הסטטוס של הבקשה שלך כל הזמן ויודע מתי היא הסתיימה.


פתרון אחר זה שתעלה את הקוד, ונבין ביחד מה לא בסדר


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   15:43   26.09.12   
אל הפורום  
  9. אוקי אני אבדוק, תודה!  
בתגובה להודעה מספר 8
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShlomiC
חבר מתאריך 4.1.08
17501 הודעות
   17:59   29.09.12   
אל הפורום  
  11. תשים טיימר  
בתגובה להודעה מספר 7
 
   שאחת לכמה שניות בודק אם יש לך ID וטוען בהתאם.

בנוגע לJQUERY AJAX , אתה יכול לחכות לסקסס כמו שאמרו כאן ,
או פשוט לעשות את זה ב ASYNC :FALSE.

לא כל כך הבנתי למה אתה צריך לדעת מתי זה מסתיים כל כך ,
אבל בכל מקרה חפש על הפקודה LOAD (יש שניים כאלה , חפש זאת שקשורה לAJAX)
שבה אתה רק מכניס כתובת וזה טוען לך ואף האפשרות לבחור סלקטור מובנת.
נשמע שזה יותר מתאים עבורך.
לדוגמא לטעון DIV בשם DIV1 מרוטר נרשום:

$(#SomeDiv).load(www.rotter.name #DIV1);

פקודה מאוד שימושית שאני תמיד משתמש בה כשאני מעוניין לטעון מידע מדפים אחרים.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   10:29   27.09.12   
אל הפורום  
  10. תראה את הקוד.. בטח חסר לך document.ready  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net