文章列表的samrty代碼如下
$smarty -> setCacheDir(ROOT_PATH."/cache/forum");$smarty -> display("$module/list.html",$_SERVER["REQUEST_URI"]);
ROOT_PATH = 我的根目錄
$module = 我PHP開頭會自定當前是什麼模組,自己找模板中的子目錄
因為文章多, 架構多, 不同的模組也多...所以想到把cache 和 template都做成子目錄
template子目錄為了方便找檔案
cache子目錄...是因為怕同一個目錄中檔案過多,分子目錄也會以便我按照不同的模組清理緩衝
我在display加入了一句:$_SERVER["REQUEST_URI"]
因為是分頁,還有可能是其他的變數
我頁面上暫時最多有可能有3個參數 list.php?fid=1&type=20&page=3
fid=欄目 (必定有)
type=主題分類 (看情況, 有些頁面有, 有些頁面沒有)
page=當前頁面 (必定有)
因為參數不同,所以也可能產生不同的檔案
使用smarty主要就是為了減輕資料庫壓力
問題一.
我在一個名為post.php的頁面發表文章
發表完成時會有一些基本的資料,好比$fid = 1 (欄目id),我就想用此欄目id,把當然欄目的cache 清理
就是這個: list.php?fid=1&type=20&page=3
有辦法有所有fid = 1有關的都清理嗎?
就是只要fid = 1 ,不管其他參數type=100還是type=5,還有所有page=xxx的都更新嗎?
問題二.
SMARTY官方 和網上搜到的簡介....
清空CACHE只有這一句
clear_cache('index.tpl',cache_id);//清除指定id的緩衝
並不能清空指定的目錄
因為上面也解釋過我是有用模板子目錄的
問題三.
經驗一問
如果我想更即時一點,網站又蠻多人上的,我把解決問題一和問題二,反而把samrty cache時間設成10秒
那如果是一個長期有500~2000人的網站,使用者常常留言/交流的網站
我設成10秒左右的緩衝會不會比起不緩衝更大壓力???
我這種情況大家會把流量寫得更...每次回帖/發文章都清空緩衝,還是直接放棄緩衝?
不好意思,已經沒什麼分獻給各位大哥了
誠心求學
回複討論(解決方案)
一直變化的不建議使用緩衝,也可以採用像QQ空間那樣用ajax來載入。這個只是我的愚見。
比?奇怪,既然你比?注重的是??,那就不?用?存了。
即使要用?存,那都需要每?行完一?事件後,??的?存就必?重建。才能?到??的效果。
?於文章列表,如果你一天?,每分?都?增加或修改新文章的。那?存的作用就不大。
如果是一天?,可能新增的文章?修改?不多。那可以在後?做一?功能。?用?清一次列表的?存。
其?儲存?存的路?,目???你都知道,完全可以自己?一?清cache的???啊,?甚?要??用smarty自?的呢?
smarty是按cacheid做判?的,不?合你的情?。
比較奇怪,既然你比較注重的是即時,那就不應用緩衝了。
即使要用緩衝,那都需要每執行完一個事件後,對應的緩衝就必須重建。才能達到即時的效果。
對於文章列表,如果你一天內,每分鐘都會增加或修改新文章的。那緩衝的作用就不大。
如果是一天內,可能新增的文章與修改數不多。那可以在後台做一個功能。調用則清一次列表的緩衝。
其實儲存緩衝的路徑,目錄規則你都知道,完全可以自己寫一個清cache的類實現啊,為甚麼要糾結用smarty內建的呢?
smarty是按cacheid做判斷的,不適合你的情況。
所以我在想
我的列表像論壇一樣,按照最新回覆排列
如果每分鐘...甚至每10~20秒都有人回覆.....而列表又有30~40頁的話
每10~20秒都要清理一次CACHE
不管是
回覆文章後的滿足條件而清理,
還是自動設定CACHE有效時間為15秒
要不停的清理快取檔案...然後而產生緩衝....是否都比起不緩衝更加重主機負擔???
自推一把,求建議
列表頁緩衝應在相關文章添加時刪除
列表頁緩衝可在再次訪問時自動產生,也可在文章發布後主動產生
如果是採用後者,那麼列表頁可直接為靜態,或緩衝永不到期。以減少檢查緩衝是否到期的開銷
列表頁緩衝應在相關文章添加時刪除
列表頁緩衝可在再次訪問時自動產生,也可在文章發布後主動產生
如果是採用後者,那麼列表頁可直接為靜態,或緩衝永不到期。以減少檢查緩衝是否到期的開銷
謝謝你
但如果大約每分鐘都有2~3個回覆
列表是以最新回覆排序
如果列表已有30~40分
每次排序不是也要刪除再產生30~40頁頁嗎?
你建議使用CACHE嗎?
你的列表是論壇的貼文清單嗎?這一點你並沒有說明噢
如果是,在不需要緩衝
如果是文章列表,可以緩衝。因為回覆不影響列表順序。至多影響到“最新動向”列表
主動產生列表頁或清除緩衝時,都是以導航條跨距為限的
因為訪問超出導航條跨距的頁面時,緩衝早就已經到期了
如果兩三分鐘就用新文章上線,就表示這個網站活動頻繁。所以緩衝就是非常必要的了
你的列表是論壇的貼文清單嗎?這一點你並沒有說明噢
如果是,在不需要緩衝
如果是文章列表,可以緩衝。因為回覆不影響列表順序。至多影響到“最新動向”列表
主動產生列表頁或清除緩衝時,都是以導航條跨距為限的
因為訪問超出導航條跨距的頁面時,緩衝早就已經到期了
如果兩三分鐘就用新文章上線,就表示這個網站活動頻繁。所以緩衝就是非常必要的了
其實系統和論壇幾乎就是一樣了
因為其他功能關係到會員權和積分,所以沒用別人的,只能自己做個簡單的
是自己用PHP+SMARTY做的
如果是論壇列表就不用緩衝了?
只要回覆會影響到排名...就不建議做緩衝了是吧?
順道一問,不知大家了不瞭解,DZ,PW他們是不是只有首頁做了cache,列表文章都沒有cache的?
這與你的具體應用是有關係的
論壇總是要把新帖和有新回複的放在前面,以引起注意
所以緩衝就沒有意義了
這與你的具體應用是有關係的
論壇總是要把新帖和有新回複的放在前面,以引起注意
所以緩衝就沒有意義了
謝謝
明白了