Siam2Advance Blog :

Web Programmer and Developer

Jan
28

Problem Flash caching and XML caching

Posted by Mr. Suriya

คิดว่าหลายๆคนที่พัฒนางานบนเว็บด้วย Flash นั้น
คงจะเคยเจอปัญหาเรื่องการ cache ของ Flash นะครับ
วันนี้ผมก็จะนำประสพการณ์ในการแก้ปัญหาของการ Cache ของ Flash มานำเสนอครับโดยที่ไม่ต้องไปคอยลบ
File ใน Internet Temporary บ่อยๆ

ปัญหานี้เป็นที่น่าปวดหัวมากสำหรับคนที่จะพัฒนางาน Flash บนเว็บครับเพราะเมื่อเราเปิดหน้า Page ที่มี Flash ขึ้นมาแล้ว
ตัว Flie Flash เองนั้นจะถูกโหลดลงเครื่องเราไปเก็บใว้ใน Temporary ของเครื่องหรือ Cache file นั้นเอง มันจะก่อปัญหา
เมื่อเราแก้งาน flash ของเราแล้ว upload ขึ้นเว็บแต่เมื่อ Preview ผ่าน IE แล้วมันกลับยังโหลด Flash ตัวเดิมมาอยู่ดี

หรือไม่ว่าจะเป็นการโหลดข้อมูล XML ลงในตัว Flash ก็เช่นกันครับมันก็จะโหลดตัวเดิม ซึ่งวิธีแก้แบบถึกๆของผมแต่ก่อนก็คือ
การตั้งชื่อ File ของ Flash นั้นใหม่หรือตั้งชื่อ Folder ใหม่ซะเลย ซึ่งมันก็ลำบากกับการทำงานพอสมควรครับ

ปัญหานี้สามารถแก้ไขได้ง่ายๆครับ ในการทำงานของ Flash นั้น เวลาเราเรียกผ่าน IE มันจะเก็บลง Cache ในเครื่องเรา
แล้วทำการ Index ชื่อ File นั้นใว้ ทำให้เวลาเรา Reload หน้านั้นๆ มันจะไปทำการดึง Flash ตัวเดิมนั้นออกมาใหม่ครับ
ลักษณะจะคล้ายๆกับการทำงานของ Proxy ครับคือการเรียก Cache File ที่มีในเครื่องขึ้นมาใหม่เพื่อไม่ให้เสียเวลาในการ
โหลด Flash นั้นใหม่อีกครั้ง เราสามารถแก้ปัญหานี้ได้โดยการ เปลี่ยนชื่อ Flash ใหม่แต่ไม่ได้เปลี่ยนชื่อมันจริงๆนะครับ

เพียงแต่ระบุ parameter ต่อท้ายให้กับ File flash ตัวนั้นครับ คือเวลาเราเปิดหน้า page นั้นๆมันจะเก็บ file flash นั้นลงเครื่องโดย save เป็น
ชื่อ เช่น myflash.swf นะครับ เราสามารถเพิ่มการใส่ parameter เข้าไปได้แล้ว IE จะไม่ไปโหลด File เก่าขึ้นมาเพราะ้ถ้าเราเพิ่ม

myflash.swf?xxxxxx

ซึ่ง parameter xxxx ที่ต่อท้าย ชื่อ file นั้นไม่มีปัญหากับการเรียก file นะครับคือมันจะถูกมองเป็นแค่การส่งตัวแปรเท่านั้นเอง
แต่เวลา IE มัน save file ลงเครื่องนั้นมันจะเอา parameter นั้น save เป็นชื่อด้วยครับมันจะ save เป็นแบบนี้เลย

myflash.swf?xxxxx

ทำให้เวลาเราเรียก page นั้นใหม่หรือ Reload ใหม่จะไม่เกิดการ cache กับงาน Flash ของเราอีกครับโดยเราอาจจะส่งค่าไปเป็น
วันเดือนปี บวกเวลาเป็นวินาทีก็ได้ครับ รับลองไม่มีโอกาส ซ้ำแน่นอนครับ ก็จะแก้ปัญหาเรื่องของ cache ได้

และปัญหาของ XML ก้เช่นกันครับเราก็ระบบ parameter เข้าไปในการโหลดเช่นกัน

myxml.xml?xxxxx

เท่านี้งานของคุณก็จะเป็นแบบ real time แล้วละครับ

โชคดีครับ

Add A Comment