מתי להשתמש ב- GET ו- POST ב- Ajax

כשאתה משתמש אייאקס (JavaScript ו- XML ​​אסינכרוני) כדי לגשת לשרת מבלי לטעון מחדש את דף האינטרנט, יש לך שתי אפשרויות כיצד להעביר את המידע לבקשה לשרת: GET או POST.

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

שיחות שבוצעו באמצעות GET לא יחשפו את השדות וערכיהם בשום מקום ששימוש ב- POST לא חושף גם כאשר השיחה מבוצעת מ- Ajax.

מה אסור לעשות

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

טעות שחלק מהמתחילים עשויים לעשות היא להשתמש ב- GET עבור מרבית השיחות שלהם פשוט מכיוון שהקל יותר בין השניים לקודד. ההבדל הבולט ביותר בין שיחות GET ו- POST ב- Ajax הוא שלשיחות GET עדיין יש אותה מגבלה על כמות הנתונים הניתנים להעברה כמו בבקשת טעינת דף חדשה.

ההבדל היחיד הוא שמכיוון שאתה מעבד רק כמות קטנה של נתונים בבקשת Ajax (או לפחות ככה אתה כדאי להשתמש בזה), סביר להניח שאתה יעבור למגבלת האורך הזו מתוך Ajax כמו שהיית עושה עם טעינת רשת שלמה עמוד. מתחיל רשאי להזמין שימוש בבקשות POST במקרים המעטים שבהם הם אכן צריכים להעביר מידע נוסף ששיטת GET מאפשרת.

instagram viewer

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

אז אם כמות הנתונים שיש להעביר אינה סיבה טובה לבחור בין GET לפוסט, אז מה עלינו להשתמש בכדי להחליט?

שתי השיטות הללו הוקמו למעשה למטרות שונות לחלוטין, וההבדלים בין אופן עבודתם נובעים בחלקם בגלל ההבדל במה שהם מיועדים לשמש. זה לא תקף רק לשימוש ב- GET ו- POST מאייאקס, אלא באמת בכל מקום שניתן להשתמש בשיטות אלה.

מטרת GET ו- POST

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

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

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

כיצד לבחור GET או POST

במקום לבחור בין GET ו- POST בהתבסס על כמות הנתונים שאתה מעביר בשיחת Ajax שלך, עליך לבחור על סמך מה שיחת Ajax עושה בפועל.

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

השתמש ב- POST אם השיחה שלך תכתוב נתונים כלשהם לשרת.

לאמיתו של דבר, עליכם לא רק להשתמש בקריטריון זה לבחירה בין GET ל- POST עבור שיחות ה- Ajax שלכם, אלא גם בבחירתם אשר ישמשו לעיבוד טפסים בדף האינטרנט שלכם.

instagram story viewer