簡體   English   中英

如果網址中有查詢字符串,是否跳過/繞過SERVER緩存文件/緩存?

[英]Skip/ bypass the SERVER cache file/caching if there's a query string in the url?

我有一個主頁作為index.php ,它提供了10個項目/產品的列表。

現在,我使用與登陸頁面相同的頁面來接收來自Facebook的內向流量。 網址看起來像index.php?productID=Q231此頁面僅顯示帶有指定ID的產品。

我知道PHP輸出緩存,但是我是新手。 我了解到,如果我緩存index.php ,它將為來自Facebook的所有傳入流量提供相同的緩存文件。

  1. 我的理解正確嗎? 我已經對此進行了很多搜索,但是我不清楚如何使用該實例進行緩存。
  2. 如果網址中有查詢字符串,是否可以跳過或繞過服務器緩存文件/緩存?

如果有人可以給我一些指導,我將不勝感激。

它實際上取決於緩存模型以及如何在代碼中處理它。

如果要使用輸出緩沖創建整個內容,則可能需要使用以下方法:

  • 根據請求的腳本和/或請求參數生成緩存密鑰,即在您的情況下使用productId
  • 檢查是否已將給定密鑰的輸出保存到某個持久性存儲中
    • 如果是,輸出
    • 如果否,則使用輸出緩沖區,生成內容,保存到持久性存儲並保存在生成​​的緩存索引下,然后輸出

Googling提出了這個基本示例: http : //www.devshed.com/c/a/PHP/Output-Caching-with-PHP/

如果我沒記錯的話,緩存不是基於引薦來源網址。 內部php緩存僅用於優化代碼,因此不會緩存。 “外部”緩存系統,例如smarty中的內置緩存,例如輸出。 我認為您只需要為瀏覽器“禁用”緩存,這意味着發送帶有header(...)的正確標題

您正在使用輸出緩存。 然后,當您的facebook或twitter鏈接被調用時,您應該清除緩存。 在codeigniter(PHP框架)中,我通過清除緩存來完成此操作。

在核心PHP中,我不知道如何清除緩存。 但是必須有一些清除緩存的方法。 因此嘗試。

這里有些鏈接可能對您有用。

如何使用php清除瀏覽器緩存?

http://php.net/manual/zh/function.clearstatcache.php

http://www.dreamincode.net/forums/topic/6519-clear-cache/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM