這樣的問題,我需要通過ajax接收一些有用的數據,但清漆緩存它一直。所以我需要一些解決方案來停止清漆緩存ajax。如何防止清漆緩存阿賈克斯?
1
A
回答
3
如果能夠基於URL識別您的AJAX請求,您可以輕鬆地管他們都具有以下VCL後端:
sub vcl_recv {
if (req.url ~ "(ajax\.php|dynamic\.php)") {
return(pipe);
}
}
這將管道的所有請求,其中URL包含ajax.php
或dynamic.php
。
4
只要後端服務器要求,Varnish將只緩存內容。如果後端服務器不發送任何類似內容,則默認緩存120秒。
這樣做的正確方法是修改後端應用程序以發送Cache-Control: max-age=0
響應標頭。
還應該注意的是,即使是第二個(max-age = 1)的緩存,在擁有大量併發用戶的站點上,也會給出好的結果。
相關問題
- 1. 防止頁面刷新阿賈克斯
- 2. 阿賈克斯 - 防止雙擊提交
- 3. 阿賈克斯 - 防止點擊一個成功的阿賈克斯請求
- 4. IE 8緩存阿賈克斯調用
- 5. jQuery的阿賈克斯緩存
- 6. 阿賈克斯與離線緩存
- 7. 阿賈克斯「緩存」,好,壞,冷漠?
- 8. 如何中止阿賈克斯請求
- 9. 防止清漆緩存PHP代碼
- 10. 阿賈克斯
- 11. 阿賈克斯
- 12. 阿賈克斯
- 13. 阿賈克斯
- 14. 阿賈克斯
- 15. 阿賈克斯
- 16. 阿賈克斯
- 17. 如何在阿賈克斯
- 18. 如何在阿賈克斯
- 19. 如何在阿賈克斯
- 20. 在阿賈克斯
- 21. 在阿賈克斯
- 22. 與阿賈克斯
- 23. 阿賈克斯valueChangeListener
- 24. 在阿賈克斯
- 25. 從阿賈克斯
- 26. 阿賈克斯+ qtranslate
- 27. 阿賈克斯CalendarExtender
- 28. 阿賈克斯後
- 29. 阿賈克斯值
- 30. 做阿賈克斯
如果可以,請使用return(pass)而不是管道。 Pipe-d請求不會顯示在varnishlog中。還要記得添加'Connection:close',否則你會遇到keepalive問題。 – lkarsten 2013-03-21 15:21:13
這是一個很好的觀點。我不記得爲什麼,但由於某種原因,vcl_pass()不適用於我們所有的請求,所以我們不得不使用vcl_pipe()。 – Ketola 2013-03-25 12:16:15