หลังจากโยนเป็นเวลานานฉันใช้วิธีการโหลด jQuery เพื่อขอคำขอในโปรแกรม มี baidu ใครจะรู้ว่ามีการร้องขอโหลดในการรับดังนั้นเบราว์เซอร์คือ
มันแคช ฉันค้นหาวิธีแก้ปัญหามากมายและจำนวนมากบนอินเทอร์เน็ต ส่วนใหญ่แบ่งออกเป็นโซลูชันไคลเอนต์และโซลูชันเซิร์ฟเวอร์
1. โซลูชันไคลเอนต์
IE Access Strateg
1: เพิ่มฟังก์ชั่นสุ่มหลังจากหน้าที่ AJAX ร้องขอเราสามารถใช้ฟังก์ชันเวลาสุ่ม
เพิ่ม t = math.random () หลังจาก URL ที่ส่งโดย JavaScript
ตัวอย่างเช่น: url+"&"+"t ="+math.random (); หรือวันที่ใหม่ ();
2: เพิ่ม XMLHTTPREQUEST.SETREQUESTHEADER ("IF-MODIFY-SINNE", "0")
ภายใต้สถานการณ์ปกติ xmlhttprequest ที่นี่จะไม่ถูกใช้โดยตรง
คุณควรจะสามารถค้นหารหัสนี้ได้
xxxxx.send (yyyyyy);
จากนั้นเปลี่ยนเป็น
xxxxx.setRequestheader ("if-modify-since", "0");
xxxxx.send (yyyyyy);
การปฏิบัติได้พิสูจน์แล้วว่าทั้งสองวิธีมีประสิทธิภาพมาก
1. เพิ่มส่วนหัว ("แคชควบคุม: ไม่มีแคชต้องตรวจสอบ") บนเซิร์ฟเวอร์
2. เพิ่ม XMLHTTPREQUEST.SETREQUESTHEADER ("if-Modified-Since", "0");
3. เพิ่ม XMLHTTTPREQUEST.SETREQUESTHEADER ("CACHE-Control", "No-cache");
4. เพิ่ม "? fresh =" + math.random () หลังจากพารามิเตอร์ URL ของ AJAX;
5. วิธีที่สี่คล้ายกับที่สาม
6. ใช้โพสต์แทนที่ได้รับ: ไม่แนะนำ
2. เซิร์ฟเวอร์ -โซลูชันด้านข้าง:
ใช้ struts2 เป็นตัวอย่าง:
Struts2 Server -side Method
รหัส XML
คัดลอกรหัสรหัสดังนี้:
<package name = "json-nocache" ขยาย = "json-default">
<wterceptors>
<interceptor name = "Cachingheadersinterceptor" />
<interceptor-stack name = "DefaultSecurityStack">
<interceptor-ref name = "defaultStack" />
<interceptor-ref name = "Cachingheadersinterceptor" />
</Internetor-Stack>
</interceptors>
<default-interceptor-ref name = "DefaultSecurityStack" /> />
</pack>
รหัส Java
คัดลอกรหัสรหัสดังนี้:
คลาสสาธารณะ CachingheaderInterceptor ขยาย AbstractIntercepor {
ส่วนตัวคงที่สุดท้าย Long SerialVersionUid = 1L;
สกัดกั้นสตริงสาธารณะ
actionContext context = raveCocation.getInVoconText ();
httpservletResponse response = (httpservletResponse) บริบท. get (strutsstatics.http_response);
ถ้า (ตอบกลับ! = null) {
Response.Setheader ("แคชควบคุม", "ไม่มีแคช");
Response.Setheader ("Pragma", "No-cache");
Response.Setheader ("หมดอายุ", "-1");
-
return rachation.invoke ();
-
-