מי נתן להם CSS ואיך גורמים לדפדפן לטעון אותו בכח?

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


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

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

הפתרון המקורי שלי היה לתת לכל משתמש קובץ CSS כך:


 LINK href="http://www.saf.org.il/tamplate1css.php?s=username rel="stylesheet" type="text/css"

למעשה אני מפנה לקובץ PHP שמייצר קובץ CSS על פי שם המשתמש.

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

ככה? הא? רק בגלל ששם הקובץ זהה?

אז הנה הפיתרון - בכל פעם שמשתמש משנה את הקובץ אני שומר timestamp ומשרשר אותו לשם הקובץ כך:

 LINK href="http://www.saf.org.il/tamplate1css.php?s=username&t=1263888643" rel="stylesheet" type="text/css"


כלומר בכל שינוי של קובץ הCSS אני יוצר אוטומטית גם שינוי בשם שלו.

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

תעשו כיף ואתרים צבעוניים, יובל.
(-: