ในกรณีที่มีการ ใช้งาน ajax เพื่อทำการโหลดเนื้อหาบางส่วนของเว็บไซต์ กับการใช้งานปุ่ม back ปุ่ม forward ในบราวเซอร์ ที่ไม่สอดคล้องกัน เราสามารถใช้ plugin ของ jQuery มาแก้ปัญหานี้ได้
ดูเนื้อหา และรายละเอียดทั้งหมด ด้วยตัวเองได้ที่ลิ้งค์
http://www.asual.com/jquery/address/docs/#sample-usage
ดาวน์โหลดไฟล์ต้นฉบับ พร้อมตัวอย่างได้ที่
ต่อไปนี้เป็นตัวอย่างการนำมาใช่งานอย่างง่าย
สร้างไฟล์ gdata.php สำหรับรับค่า
<?php header("Content-type:text/html; charset=UTF-8"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); if($_GET['gDate']){ echo date("Y-m-d"); exit; } if($_GET['gTime']){ echo date("H:i:s"); exit; } if($_GET['gText']){ echo "Text"; exit; } ?>
ไฟล์ทดสอบ HTML และ JavaScript ไฟล์
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>ajax back button</title> </head> <body> <a href="#gDate">Get Date</a> <a href="#gTime">Get Time</a> <a href="#gText">Get Text</a> <div id="dataShow"> </div> <script type="text/javascript" src="js/jquery-1.4.1.min.js"></script> <script type="text/javascript" src="js/jquery.address-1.2.min.js?tracker=track"></script> <script type="text/javascript"> $(function(){ $.address.init(function(event) { }).change(function(event) { var goAnchor=event.value; var url="gdata.php"; switch(goAnchor){ case "/gDate": $("div#dataShow").load(url+"?gDate=1"); break; case "/gTime": $("div#dataShow").load(url+"?gTime=1"); break; case "/gText": $("div#dataShow").load(url+"?gText=1"); break; } }); $('a').address(); }); </script> </body> </html>
ตัวอย่าง
แก้ปัญหา ปุ่ม back ปุ่ม forward กับการใช้งาน ajax โหลดหน้าเพจ ด้วย jQuery plugin