फ्लॅश, जावास्क्रिप्ट, एक्सएमएल, केएमएल किंवा Google नकाशे सह कॅशींगचे मुद्दे निराकरण करा
कॅशिंगच्या मुद्द्यांवरील ही एक छोटी आणि गोड पोस्ट आहे. साइट्स आणि ब्राउझर स्त्रोत खरोखर अनुकूलित करण्यासाठी तयार केल्या आहेत. ते कधीकधी इतक्या चांगल्या प्रकारे करतात की शेवटचा परिणाम आपल्या आवडीनुसार आपल्यास गतिमान वेबसाइट अद्यतनित करण्याऐवजी तोडतो. आज मी सोबत काम करत होतो जेडब्ल्यू प्लेअर, एक फ्लॅश मूव्ही प्लेयर जो एक्सएमएल फाईलद्वारे चित्रपटांच्या सूचीमध्ये खेचतो.
समस्या अशी आहे की आम्ही नेहमीच नवीन वेबिनार आणि प्रशिक्षण वर्गांसह फाईल अद्यतनित करत असतो. जर आमचे ग्राहक दररोज पृष्ठावर येत राहिले, तर ते प्लेलिस्टची कॅश्ड आवृत्ती लोड करेल आणि त्यांना नवीनतम आणि सर्वात मोठी कधीही दर्शवित नाही.
परिणामी, मला हेक करावे लागले एसडब्ल्यूएफ ऑब्जेक्ट कोड जेणेकरून प्रत्येक वेळी नवीन प्लेलिस्ट लोड होत आहे असे त्यांना वाटेल.
var video = new SWFObject('player.swf','mpl','670','280','9'); var playlist = 'playlist.xml't='+Math.round(1000 * Math.random()); video.addParam('allowscriptaccess','always'); video.addParam('allowfullscreen','true'); video.addParam('flashvars','&file='+playlist+'&playlistsize=350&controlbar=over&playlist=right'); video.write('video');
मी प्लेअरला फसवण्याचा मार्ग म्हणजे जावास्क्रिप्टचा वापर करून यादृच्छिक क्रमांक निर्माण करणार्या यादीच्या नावावर क्वेरीस्ट्रिंग लावणे. हे पृष्ठ कोण मारते हे महत्त्वाचे नाही, ते एक भिन्न फाईलनाव शोधत आहे, त्यामुळे प्रत्येक वेळी प्लेअर प्लेलिस्टमध्ये ताजे राहील.
हे जेडब्ल्यू प्लेयरसाठी फक्त सुलभ नाही, गतिकरित्या बदलणार्या केएमएल फायलींबरोबर व्यवहार करताना मी Google नकाशेसाठी देखील हे तंत्र वापरले आहे. फक्त एक यादृच्छिक क्वेरीस्ट्रिंग व्युत्पन्न करा आणि वापरकर्ता प्रत्येक वेळी जेव्हा भेटेल तेव्हा सिस्टम (बर्यापैकी स्थिर) केएमएल फाइल रीलोड करेल. हे एक खाच आहे, परंतु कॅशिंग अनिवार्यपणे चालू करण्याचा हा एक सोपा मार्ग आहे बंद या अनुप्रयोगांमध्ये पर्याय नसतात.