นักพัฒนาค้นพบว่า Safari ใน iOS 6 ฝ่าฝืนข้อกำหนดของโปรโตคอล HTTP ด้วยการ cache หน้าเว็บที่ถูกเรียกด้วยเมท็อด POST ไว้ทั้งที่ไม่ควรจะทำ ซึ่งทำให้การแสดงผลหน้าเว็บผิดพลาดไปจากที่ควรจะเป็น
วิธีหรือเมท็อดที่ใช้ในการสื่อสารระหว่างเบราว์เซอร์กับเว็บเซิร์ฟเวอร์นั้นมีด้วยกันหลายชนิด แต่เมท็อดที่นิยมก็คือ GET และ POST ทั้งนี้การร้องขอหน้าเว็บโดยใช้เมท็อด GET ด้วยพารามิเตอร์เดิมนั้น มักจะได้หน้าเว็บที่เหมือนกันเสมอ ดังนั้นเมื่อเซิร์ฟเวอร์ส่งข้อมูลมาให้เบราว์เซอร์แล้ว เบราว์เซอร์มักจะเก็บ (cache) หน้าเว็บที่ได้มานั้นไว้ในเครื่อง เมื่อผู้ใช้เรียกหน้าเว็บเดิมด้วยพารามิเตอร์เดิมอีกครั้ง เบราว์เซอร์ก็จะแสดงหน้าเว็บที่เก็บไว้ในเครื่องเลยโดยไม่จำเป็นต้องร้องขอไปยังเซิร์ฟเวอร์อีกครั้งให้เสียเวลา
ในทางตรงกันข้าม ข้อกำหนดของโปรโตคอล HTTP ระบุไว้ว่าเบราว์เซอร์ไม่ควร cache หน้าเว็บที่ได้จากเมท็อด POST เพราะการเรียกเว็บด้วยเมท็อด POST นั้นอาจจะไม่ได้หน้าเว็บที่มีหน้าตาเหมือนเดิมทุกครั้งแม้ว่าจะใช้พารามิเตอร์เดิมก็ตาม เบราว์เซอร์ควรร้องขอหน้าเว็บจากเซิร์ฟเวอร์เองโดยตรงเพื่อให้ได้ข้อมูลที่ถูกต้องที่สุด
ปรากฎว่ามีนักพัฒนากลุ่มหนึ่งโพสต์ใน Stack Overflow ว่าหน้าเว็บของพวกเค้าที่เป็น Ajax นั้นแสดงผลไม่ถูกต้องบน Safari ของ iOS 6 จากการตรวจสอบก็พบว่า Safari เวอร์ชันนี้ตั้งหน้าตั้งตา cache หน้าเว็บไว้ทั้ง ๆ ที่เป็นเมท็อด POST และแม้จะสั่งปิดไม่ให้ Safari เก็บค่าไว้แล้วก็ตาม
งานนี้ทำให้นักพัฒนาต้องปวดหัวและความพยายามในการแก้ไขหลายทางก็ไม่ได้ผล ทางออกที่ใช้ได้ตอนนี้ก็คือต้องใส่ค่า timestamp เป็นพารามิเตอร์หนึ่งของเมท็อด POST ด้วยทุกครั้ง เพื่อให้ Safari เห็นชัด ๆ ว่าเป็นการเรียกที่ไม่ซ้ำกันและไม่ดื้อดึงที่จะ cache หน้าเว็บไว้อีก
ที่มา - Ars Technica
on
จริงๆแล้วตามข้อกำหนดใน rfc
soginal Mon, 24/09/2012 - 17:01
จริงๆแล้วตามข้อกำหนดใน rfc สามารถกำหนด cache-control header เพื่อสั่งให้ browser cache ได้นะครับ เพียงแต่ default แล้วมันจะไม่ cache ให้
แต่ในกรณีนี้เขาบอกว่าใน safari ดูเหมือนจะ cache ให้เป็น default และหากต้องการไม่ให้ cache ก็ต้องส่ง header Cache-Control: no-cache เท่านั้น และอีกวิธีก็คือส่ง timestamp นั่นแหละ
คำว่า method (เมธ็อด)
tk719 Mon, 24/09/2012 - 17:15
คำว่า method (เมธ็อด) ไม่มีคำไทยหรือครับ?
ตอนเด็ก ๆ
hisoft Mon, 24/09/2012 - 17:26
In reply to คำว่า method (เมธ็อด) by tk719
ตอนเด็ก ๆ อาจารย์สอนเรียกเม็ดตอดครับ :p
+1
shelling Mon, 24/09/2012 - 17:44
In reply to ตอนเด็ก ๆ by hisoft
+1
เม็ด..ตอด
nextman13 Mon, 24/09/2012 - 17:49
In reply to ตอนเด็ก ๆ by hisoft
เม็ด..ตอด
รู้นะ คิดอะไร :P ...
Arcanis Mon, 24/09/2012 - 18:22
In reply to เม็ด..ตอด by nextman13
รู้นะ คิดอะไร :P ... คิดเหมือนผมใช่ป่าว
ปลาทองใช่ไหมล้า
EThaiZone Mon, 24/09/2012 - 19:54
In reply to รู้นะ คิดอะไร :P ... by Arcanis
ปลาทองใช่ไหมล้า เคยโยนอาหารเม็ดมันตอดอาหารเกลี้ยงเลย
นั่นมันตอดเม็ด!
hisoft Mon, 24/09/2012 - 21:54
In reply to ปลาทองใช่ไหมล้า by EThaiZone
นั่นมันตอดเม็ด!
อย่าต่ออีกเลยเดี๋ยวต้องติด
lungkao Mon, 24/09/2012 - 23:42
In reply to รู้นะ คิดอะไร :P ... by Arcanis
อย่าต่ออีกเลยเดี๋ยวต้องติด เรต อิอิ
วิธี หรือ เมท็อด
lch Mon, 24/09/2012 - 17:30
In reply to คำว่า method (เมธ็อด) by tk719
วิธี หรือ เมท็อด (จากศัพท์บัญญัติ) ครับ
หากแปลไทย
heart Mon, 24/09/2012 - 17:37
In reply to คำว่า method (เมธ็อด) by tk719
หากแปลไทย คงจะมีคนสับสนกว่าเดิม เพราะ method มันถูกใช้ทับศัพท์ เสมือนเป็นศัพท์ทางเทคนิคไปโดยปริยาย
ไม่ควรเรียกเป็นคำไทยอย่างยิ่ง
quake_the_rock Mon, 24/09/2012 - 17:56
In reply to คำว่า method (เมธ็อด) by tk719
ไม่ควรเรียกเป็นคำไทยอย่างยิ่ง
เอาจริงๆ นะ
EThaiZone Tue, 25/09/2012 - 01:01
In reply to คำว่า method (เมธ็อด) by tk719
เอาจริงๆ นะ เคยมีช่วงหนึ่งผมอ่านเป็น มีท็อด จากนั้นค้นพบว่าตัวเองใช้หลักการอ่านออกเสียงผิด พอๆ กับครูประถมที่สอนเด็กอ่านออกเสียงว่าเรสเตอแรน (restaurant)
ไม่ได้เหน็บครูนะ แต่ผมนักเรียนหลักสูตร 2521 เจอคำนี้ในช่วงประถมบ่อยมาก!
ปล. นอกเรื่องนิด คิดถึงหนังสือสปช. มากๆ
ซ้ำรอย IE5 ?
HMage Mon, 24/09/2012 - 17:40
ซ้ำรอย IE5 ?
เป็นมานานละครับ
zigheart Mon, 24/09/2012 - 17:47
เป็นมานานละครับ สมัยก่อนผมแก้เว็บอยู่หลายรอบ แต่มันกลับแสดงผลเหมือนเดิม
It's a feature !!
CPECHRIS Mon, 24/09/2012 - 17:48
It's a feature !!
ฮา
toooooooon Mon, 24/09/2012 - 17:58
In reply to It's a feature !! by CPECHRIS
ฮา
iOS6 มีบั๊กเรื่อง AJAX อยู่ 3
pittaya Mon, 24/09/2012 - 17:50
iOS6 มีบั๊กเรื่อง AJAX อยู่ 3 ตัว มีวิธีแก้ไขตามนี้ครับ http://www.devthought.com/2012/09/22/understanding-the-ios6-ajax-bugs/
รู้แต่ว่า Safari
pizzicato Mon, 24/09/2012 - 17:58
รู้แต่ว่า Safari เวอร์ชั่นนี้มันเร็วมากๆ
+1
gunner1886 Mon, 24/09/2012 - 18:08
In reply to รู้แต่ว่า Safari by pizzicato
+1
+1 ทดแทนแผนที่ได้สำหรับผม
psemanssc Mon, 24/09/2012 - 19:34
In reply to รู้แต่ว่า Safari by pizzicato
+1 ทดแทนแผนที่ได้สำหรับผม เพราะชอบอ่านเว็บบนรถไฟฟ้า
กับ chrome ละครับใครเร็วกว่า
dangsystem Mon, 24/09/2012 - 21:36
In reply to รู้แต่ว่า Safari by pizzicato
กับ chrome ละครับใครเร็วกว่า
Chrome กระตุกกว่าครับ
inkirby Mon, 24/09/2012 - 22:12
In reply to กับ chrome ละครับใครเร็วกว่า by dangsystem
Chrome กระตุกกว่าครับ #ผิดประเด็น
ผลการทดสอบออกมาว่า safari
nant Tue, 25/09/2012 - 01:21
In reply to กับ chrome ละครับใครเร็วกว่า by dangsystem
ผลการทดสอบออกมาว่า safari เร็วกว่าครับ
จากหัวข้อข่าวน่าจะพอรู้นะครับ
gift2533 Tue, 25/09/2012 - 15:11
In reply to รู้แต่ว่า Safari by pizzicato
จากหัวข้อข่าวน่าจะพอรู้นะครับว่ามันเร็วเพราะอะไร
อธิบายเรื่อง method ได้ดีครับ
kajokman Mon, 24/09/2012 - 18:06
อธิบายเรื่อง method ได้ดีครับ ^^
ทำตัวเป็น IE ไปได้ ชิส์
HyBRiD Mon, 24/09/2012 - 18:17
ทำตัวเป็น IE ไปได้
ชิส์
Apple ทำอะไรเนี้ย
lungkao Mon, 24/09/2012 - 23:42
Apple ทำอะไรเนี้ย
รู้สึกผิดหวังกับ apple
olosol@hotmail.com Tue, 25/09/2012 - 03:11
รู้สึกผิดหวังกับ apple ยุคที่ไม่มี ลุงจ๊อบส์ หน่อยนึง คิดว่าเรื่องพวกนี้ไม่น่าหลุดออกมาถ้าแกยังอยู่ รู้สึกเหมือน quality ลดลงเยอะ เรื่อง map เหมือนกัน ส่วนตัวเชื่อว่าถ้า จ๊อบส์ อยู่ ios6 น่าจะยังใช้ map ของ google อยู่ เพราะเห็นๆอยู่ว่าของใหม่สู้ของเดิมไม่ได้ ยังดันทุรังใส่มาอีก
HTTP is universal transfer
kitarotao Tue, 25/09/2012 - 03:22
HTTP is universal transfer protocols.
อยากบอกว่า android ก็เป็นครับ
SuperBancha Tue, 25/09/2012 - 23:19
อยากบอกว่า android ก็เป็นครับ Ajax bug อันนี้