הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   ajax ריענון כאשר משתנה מסד? (https://hosts.co.il/forums/showthread.php?t=68103)

ASTeam 09-10-08 22:10

ajax ריענון כאשר משתנה מסד?
 
אני מתחיל בAJAX אבל רציתי לדעת, אם יש שינוי כלשהו בטבלה מסוימת, האם אוכל, בעזרת AJAX(הדרך שהכי נראית לי), לרענן את הדף(הוא פשוט להוסיף, למחוק את הנתונים בלי לרענן - פחות דחוף..)

חיפשתי בגוגל אך ללא הצלחה
תודה!

AlmogBaku 09-10-08 22:33

פשוט עשה עדכון אוטומאטי לעמוד מסויים ובPHP תציג את מה שאתה רוצה.

kfir91 09-10-08 22:35

יש לי שאלה גם, כאשר אני שם UPDATE ב sql בדף ותקשורת ישירה עם השרת ב ajax
זה יעדכן גם בלי שאני יכנס לדף ?

ASTeam 09-10-08 22:57

Baku
חשבתי שכל X שניות יעדכן, אבל אני רוצה יותר יעיל
kfir91
אני מאמין שכן.

Shillo 09-10-08 23:37

לאחר עדכון הטבלה פשוט שלח נתונים לקובץ AJAX, ותבדוק שאם הנתון לא ריק אז תבצע רענון/העברה לדף שאתה מעוניין (במקרה הפעם, הדף הנוכחי).

O-B 10-10-08 02:07

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

ASTeam 10-10-08 14:32

של גילעד יותר יעיל כי שלך עובד מצריך שכל X שניות יבדוק...

גילעד איך אני עושה מה שאמרת?

AlmogBaku 10-10-08 14:54

זה בדיוק אותו דבר. רק ששלך מסורבל יותר.

בכל מקרה הוא חייב להתעדכן באופן קבע מדף מסויים..

ASTeam 10-10-08 15:06

ע"פ כילעד מה שהבנתי זה שהדף המעדכן שולח בקשה לדף התגובות להתרענן,
לא הבנתי נכון?

AlmogBaku 10-10-08 16:35

אם אתה משתמש ב AJAX הדרך היחידה לבדוק אם מידע מתרענן היא ליצור עדכון כל מס' שניות לדף.

בעצם, על-פי שתי השיטות, אנחנו יוצרים "יחידת האזנה" ע"י רענון כל X ש' לעמוד מסויים[בגלל שזה AJAX אי אפשר לפתוח פורט שיאזין באמת, לחן אנחנו מאזנים עם HTTP REQUESTIONS].
בעצם, גלעד אומר שאותו הדף ידפיס שייבדק מול המסד למשל, אם ההדפס שווה ל-1 למשל עשה פונקציה a..

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

Shillo 10-10-08 21:32

ציטוט:

נכתב במקור על ידי ASTeam (פרסם 672084)
ע"פ כילעד מה שהבנתי זה שהדף המעדכן שולח בקשה לדף התגובות להתרענן,
לא הבנתי נכון?

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

For Each person in Session("users")
Server Side Redirect/Body onload="refresh function"/meta מה שבא לך

אני חושב שזה אמור לעבוד, וכמובן אם אתה מתכנת בPHP, הנוסח של הלולאה שונה.

kfir91 10-10-08 21:43

אז רגע אתם בטוחים ?
אם אני יעשה update ב sql בדף ורענונים אוטומטים ב ajax זה יעדכן גם מבלי שאני יהיה בדף?

Shillo 10-10-08 21:49

אם הsession/עוגיה שלך פעיל/ה אז כן.

intercooler3819 10-10-08 22:41

האפשרות היחידה שלך בAJAX לבצע את מה שאתה רוצה זה לשלוח בקשת HTTP כל X שניות במידה ויש חדש מעדכן במידה ולא משאיר את התוכן הקיים
אתה יכול גם לעשות CACHE לתוצאות
משמע אתה טוען את העמוד עם המידע הכי עדכני, כל X שניות בודק עדכון עם הזמן הנוכחי, הקובץ PHP מחזיר רק את התוצאות שיותר חדשות ממה שכבר יש בעמוד ואותם אתה שואב ומוסיף בראש או בקצה הרשימה

בהצלחה

ניצן

ASTeam 11-10-08 21:32

אז זה מיותר,
מה ההבדל בין זה לבין ריענון כל X שניות?

ע"פ מה שאתם אומרים, במצב של צ'אט, אני אצטרך לחכות שניה עד שאני אקבל תשובה(לדוג'?)
כדי להראות צ'אט אמיתי יש צורך שישלח בקשה כל חצי שניה+- -> צריכת משאבים גדולה...

O-B 11-10-08 21:58

נכון בגלל זה לא מתכנתים צאט רק בPHP..

ASTeam 11-10-08 22:09

אז איך?

בניה 12-10-08 01:45

כמה עמוס הצ'ט הולך להיות?
אם לא יותר מידי,והשרת שלך טוב אתה יכול לעבוד עם PHP.
אם הוא הולך להיות עמוס,תעבוד עם שרת IRC והלקוח בדפדפן יהיה בFLASH שאני מניח שאפשר להשיג כאלו בחינם.

Qweb 12-10-08 13:45

ציטוט:

נכתב במקור על ידי O-B (פרסם 672027)
תיצור 2 סשיינים אחד שמחזיק את תאריך העדכון האחרון במסד והשני את תאריך העדכון האחרון של העמוד..
בעזרת פונקצית AJAX תבדוק אם הזמנים שווים אם כן אז אל תבצע דבר אם לא אזי עדכן מהמסד ושנה את התאריך העדכון האחרון של העמוד..

זאת הדרך הנכונה. אני ממליץ.

ASTeam 12-10-08 17:36

כל צ'אט בפני עצמו -> לא עמוס בכלל.
(זה מעין שירות שיתן דרכו לפתוח צ'אטים..)

איך עם PHP ניתן לעשות זאת?כמו בדרך שלמעלה?

AlmogBaku 12-10-08 21:29

פשוט מיותר, זה אותו מאמץ מבחינת השרת. במקום לשלוח 8 בדיקות מציגים בלי לבדוק.

ASTeam 12-10-08 23:03

תודה הסתדרתי..

intercooler3819 13-10-08 03:30

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

בכל מקרה,
אתה יכול להכניס סקריפט שמורץ כל X זמן עם CRONJOB שיוצר עמוד HTML בהתאם לתוצאות שאתה רוצה להציג
ככה שמצד הלקוח כל מה שתצתרך לשלוף יהיה עמוד HTML עם NO CACHE HEADERS

או שאם יש לך MEMCACHED זה יכול להיות יותר נחמד (:

ד'א ספר לנו איך פתרת את זה לבוסף

ASTeam 15-10-08 17:12

עשיתי ajax
שרץ כל X שניות ומרענן
אני עכשיו מנסה שישנה לעשות לראות אם משהו השתנה, ורק אם משהו השתנה יעדכן...
מחפש דרך..(יש בעיה להעביר משתנים דרך AJAX אז..)


כל הזמנים הם GMT +2. הזמן כעת הוא 16:04.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ