27-02-2010, 19:56
|
|
|
חבר מתאריך: 06.05.04
הודעות: 297
|
|
בניתי צ'אט לא מזמן, אפילו פרסמתי אותו :)
אפשר לעשות משהו גם רק עם JS+PHP, עם חדרים + שיחות פרטיות, הכול דורש השקעה ותכנון נכון, לגבי אחסון המידע, אני איחסנתי בקבצים, זה כמובן לא יעיל שיש לך 1000 משתמשים פעילים באתר, אבל יש לזה פתרונות כמובן, אפשר להשתמש באחד ממנועי הCACHE של PHP.
תקרא על APC או על MEMCACHE.
לגבי AJAX:
בInternet Explorer פעם האובייקט הגיע כרכיב בתוך MSXML(Microsoft XML Core Services) ולאחר מכן בגירסאות מתקדמות יותר הוא הגיע כActiveXObject שמתממשק לממשק IXMLHttpRequest אשר נעטף ע"י הרכיב של הMSXML.
זה כרקע למה שהולך/הלך ברקע של הרכיב.
מעבר לזה הוא עושה פעולות די בסיסיות, שליחה וקבלה של מידע, את המידע אתה יכול לקבל בכול פורמט כמעט כשהמקובלים בהם מטעמי נוחות ושליטה במידע הם JSON,XML,plain text אבל שוב אין בעיה כול מידע בplain text ולעבד אותו בשפת התסריט.
כמובן כשאתה מעביר XML אז טריוויאלי שתשתמש ביכולות הDOM של JS כדי לעבד את הXML לצרכים שלך.
שאתה משתמש בJSON(Javascript Object Native) שזה פורמט פשוט מאוד, אתה מקבל את המידע שלך מומר לאובייקט בJS כול מה שאתה צריך זה לעשות eval למחרוזת המתקבלת, ולעבוד איתה כמו אובייקט לכול דבר, יש ספריות מאובטחות שמתאימות לשימוש הזה.
מעבר לזה כשאתה שולח בקשה יש לך שליטה על המצבים שהבקשה נמצאת בהם, ואתה יכול לפעול בהתאם, המצבים ממוספרים מ0 עד 4
0 - הבקשה עדיין לא אותחלה.
1 - הבקשה אותחלה
2 - הבקשה נשלחה
3 - הבקשה במצב ביניים(עדיין נשלחת)
4 - הבקשה הסתיימה(נשלחה בהצלחה)
כדי לשלוט לדעת מה מצב הבקשה משתמשים במתודה readyState.
לאובייקט שלך יש גם אירוע (שבתוכו שולטים במצב הבקשה) לאירוע קוראים onreadystatechange (וכשמו כן הוא, מה קורה ברגע שהמצב של הבקשה משתנה).
אתחול הבקשה מתבצע באמצעות המתודה open שם אתה קובע מספר פרמטרים,
העמוד אליו אתה שולח את הבקשה
סוג השליחה - post,get
מצב השליחה - האם הבקשה תתחשב בתהליכים אחרים שרצים, או שתרוץ בצורה אסינכרונית.
לאחר אתחול הבקשה, אתה משתמש במתודה send ושולח את הבקשה.
אחרי שקראת את כול זה, גש ולמד על JQuery
|