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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   תחזוק שרתים ושירותי רשת נוספים (https://hosts.co.il/forums/forumdisplay.php?f=29)
-   -   Nginx Cache - האם יש דרך לכפות על הדפדפן לטעון קבצי JS מחדש? (https://hosts.co.il/forums/showthread.php?t=108274)

אביב 10-01-15 19:26

Nginx Cache - האם יש דרך לכפות על הדפדפן לטעון קבצי JS מחדש?
 
היי לכולם, אני מודע לכך שיש אפשרות להוסיף Version כפרמטר לקובץ JS - אבל בגלל סיבות כאלו ואחרות אין באפשרותי לשנות את נתיב הקובץ.

השאלה היא כזאת, האם ישנה דרך שבאמצעותה אפשר לכפות על הדפדפן לטעון מחדש קובץ JS מסויים? אולי קינפוג של cache-control ב-nginx? אשמח לכמה תשובות עם ניסיון ואולי קצת Sources :-)

Kernel 11-01-15 08:24

קוד:

location ~* \.(js)$ {
add_header Cache-Control "no-cache, must-revalidate";
}


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

אביב 11-01-15 08:40

ציטוט:

נכתב במקור על ידי Kernel (פרסם 893682)
קוד:

location ~* \.(js)$ {
add_header Cache-Control "no-cache, must-revalidate";
}


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

טכנית אני יכול להשתמש בתנאי הנ״ל ל24 שעות - כאשר אני מניח שאחרי 24 שעות מרבית המשתמשים שלי טענו את הjs מחדש ולאחר מכן להסיר אותו?

GNS 11-01-15 14:48

ציטוט:

נכתב במקור על ידי אביב (פרסם 893661)
היי לכולם, אני מודע לכך שיש אפשרות להוסיף Version כפרמטר לקובץ JS - אבל בגלל סיבות כאלו ואחרות אין באפשרותי לשנות את נתיב הקובץ.

שים לב שאין צורך לשנות נתיב, מספיק לעשות משהו כזה:
script.js?12

זוהי הדרך המקובלת והנכונה.

אביב 11-01-15 15:26

ציטוט:

נכתב במקור על ידי GNS (פרסם 893690)
שים לב שאין צורך לשנות נתיב, מספיק לעשות משהו כזה:
script.js?12

זוהי הדרך המקובלת והנכונה.

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

GNS 11-01-15 15:44

ציטוט:

נכתב במקור על ידי אביב (פרסם 893691)
תודה על הניסיון לעזור אבל שים לב למה שכתבתי בתחילת הנושא.

רשמת שאין באפשרותך לשנות את נתיב הקובץ, רציתי להיות בטוח שאתה מבין שאין צורך לשנות נתיב.

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

Kernel 11-01-15 15:51

ציטוט:

נכתב במקור על ידי אביב (פרסם 893683)
טכנית אני יכול להשתמש בתנאי הנ״ל ל24 שעות - כאשר אני מניח שאחרי 24 שעות מרבית המשתמשים שלי טענו את הjs מחדש ולאחר מכן להסיר אותו?

לא,

החוק הזה מודיע לכל אחד שמוריד את הקובץ, שלא ישמור אותו בדפדפן אלא יוריד אותו כל פעם מחדש,
החוק הזה לא תקף לגולשים שכבר הורידו את הקובץ לדפדפן עם max-age עתידי, הם יתעדכנו רק כאשר הזמן של ה-max-age יפוג בדפדפן שלהם.


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

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