שלח תשובה

זירת השאלות

13 תשובות

  1. שאלה אחרת לגבי userData
    אני מנסה להשתמש ב-userData כמו פה ובתפוז כדי לגרום להודעות בפורום שהמשתמש ביקר בהן לשנות צבע, אני רוצה שלפני שהפורום נבנה בצורה דינאמית ע"י לולאות של JS בצד לקוח לבדוק זאת אבל בגלל שJS פועל לפני כל שאר ה-HTML הוא לא מוצא את userData ומודיע לי על שגיאה – מה אני יכול לעשות גדי שזה לא יקרה?

  2. BuildHome הגיב:

    למה לא לקרוא
    לבדיקה עבור כל הודעה בעת הלולאת JS?
    יש לך קוד קיים?

  3. BuildHome הגיב:

    כשאתה מציג
    את ההודעות בלולאת JS באופן דינמי, פשוט כאשר כשאתה עובר על כל הודעה אז גם תעבור על בדיקת ההודעה. במידה והיא נלחצה (לפי ערך ה-userData) או לא ותפעל בהתאם.

  4. אני קראתי שוב ושוב ושוב את המדריך
    של userData ואני ממש בטוח שה-div של ה-userData חייב לעלות לפני ששאר הקוד עולה אבל בגלל שזה לא ככה אז הקוד הבא לא פועל (סתם משהו שאני מנסה)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

    <html>
    <head>
    <title>Page title</title>
    </head>
    <style>
       .userData {behavior:url(#default#userdata);}
    </style>
    <script language="JavaScript" type="text/javascript">
    <!–
    var ud=document.getElementById("ud");
    ud.load("forumMsg");
    var msgArr = ud.getAttribute("msgArr");
    msgArr = split(",");
    for (i=0;i<10;i++){
      for (j=0;j<msgArr.length;j++){
         if (parseInt(msgArr[i]==j)){
          bWasRead=true;
         }
        }
        if (bWasRead){
         document.write("<div id="+i+" style="color:#EAEAEA;">"+i+"</div>");
         bWasRead=false;
        }
        else{
         document.write("<div id="+i+" style="color:#000000;">"+i+"</div>");
        }
    }
    //–>
    </script>
    <body>
    <div id="ud" class="userData"></div>
    </body>
    </html>

  5. BuildHome הגיב:

    אתה מכניס
    את כל ID ההודעות לתוך userData?
    אתה צריך ליצור ערך ב-userData עם שם של ערך קבוע ו-ID ההודעה שעליה לוחצים בפורום.
    ככה תוכל לבצע את הבדיקה אחרי שה-DIV מודפס.

  6. לא…
    אני מכניס את כל ה-Id של ההודעה שנלחצה!

  7. זהר פלד הגיב:

    try…catch….finally – זו שיטה
    לטיפול ב run time exceptions – כלומר השיטה של JS לטפל בשגיאות.
    את הקוד הבעייתי אתה שם בתוך בלוק של try, ואחריו אתה משתמש בבלוק של catch בשביל לטפל בשגיאה אם קרתה. בלוק finally יתבצע בין אם קרתה שגיאה ובין אם לא.

    למה רק run time exceptions? יש חלוקה בין שגיאות שנובעות מקוד לא תקין (בשפות שלא עוברות קומפילציה זה כמובן הרבה יותר גרוע, כי קוד לא תקין מגלים רק כשמנסים להריץ ולא בזמן קימפול) לבין שגיאות שלכאורה למתכנת אין שליטה עליהן (קלט שגוי, נתונים שגויים ב DB, חיבור אינטרנט שמתנתק באמצע פעולה, וכד'). האחרונים נקראים run time exceptions, ובהם אפשר לטפל בד"כ במספר דרכים – את הקלט מהמשתמש, לדוגמא, אפשר לסנן ולבדוק (בדיקות תקינות לטופס). במקרים שבהם לא ניתן לטפל מראש ב run time, משתמשים ב try-catch בשביל לא לאפשר מצב של קריסה מוחלטת של התוכנית.

  8. BuildHome הגיב:

    אז בעצם
    אין לך צורך ב-DIV ככה שאתה כלל לא תלוי בו.
    אתה רק זקוק ל-ID ההודעה על מנת לבדוק את הערך שלה ב-userData שיצרת.

  9. אוקיי אני חייב להסביר את עצמי טוב..
    ככה יש לי עמוד של הודעות…
    אני משתמש ב-userData בשביל למצוא את ההודעות שכבר נלחצו!
    אני אחרי שה-userData הופך את הפורום ל-נלחץ | לא נלחץ אחרי שאני מעלה את הפורום…
    אני חשבתי איך אני אעשה את זה בצורה יעילה וגם שלא תפגע בקוד…
    אז חבר שלי הציע להשתמש ב-OOP
    ואני משתמש בזה

שלח תשובה