維基百科:更新服務器緩存
本頁為操作指南,用於介紹中文維基百科社群的一些實作和操作方式。 本文只是論述,不屬於方針或指引。如果本指南與方針或指引起衝突或不一致,請以方針或指引的條文為準。 |
更新服務器緩存(又稱清除緩存,英語:Purge)是一種手動讓伺服器清除暫時存取舊頁面的方式。當用戶使用這個功能時,可以看到整頁被軟體馬上更新為新版本,而不會看到舊的緩存頁面。
對有些加上了大量外部頁面、或是模板的維基百科頁面來說,剛加上模版時,也許沒有辦法馬上看到,這時使用清除緩存是有幫助的。
目前維基百科使用一個簡易模版來讓使用者強迫更新該頁面,用法是{{purge}}。
過程
[編輯]當一個維基頁面被更改時,MediaWiki,也就是維基百科的主系統軟體,會將更改存在主資料庫當中。下一次當未登入的用戶看到這個頁面,主資料庫會自動複製一份「主機快取」(Server Cache)(在第二個)到用戶主機上。一直到這個頁面的下一次更改前,未登入的用戶都會看到這個複製到他主機上的畫面,這一點有利於減輕主資料庫的負荷。
一般來說,當頁面更動造成,就會有一個小小的標記「更動過」傳回給網站的主機,這個標記意味著用戶的主機可複製一份快取。不過,當頁面讀取的是許多頁面的一部份,例如,分類頁面讀取的是很多條目的標題,主題首頁的頁面讀取的是很多模板上的資訊,這個頁面上,「更動過」的小小標記就不會被處理(因為更新的並非該頁面資料,而是該頁面內包其他頁面的資料),於是主機也不會製造一份快取,那麼其他如未登入的用戶所看到的,就會是舊的快取,而非更新後的頁面。
更新快取方法
[編輯]向服務器請求清除緩存
[編輯]清除緩存,事實上使用的僅是加在條目連結後的一段語法,寫成「?action=purge
」,一但操作它之後,主機快取就會被刪除,替代之最新版本,包括內含的模板、頁面標題等,都會以最新的更改版本取代。或者用Special:Purge,輸入要刷新的頁面名稱也能實現同樣的效果。
零編輯
[編輯]如果目標頁面可以編輯,則可通過零編輯更新緩存:
- 點擊頁面頂部的「編輯」標籤;
- 不做任何更改,直接點擊編輯區下方的「發佈變更」。[a]
零編輯一般不會保存,通常不會記錄任何更改。如果你輸入編輯摘要,它通常會被忽略。在代碼最後加入換行通常也是零編輯。尾部的換行通常被忽略。然而章節編輯有時候會產生變化並被保存。
保護與移動頁面也會更新緩存。
- 優點
- 對於修改模板後,欲更新分類和「連結至此的頁面」顯示,其它任何方法都無效,唯有零編輯能更新緩存。
- 缺點
- 若不能編輯頁面,則自然無法做出零編輯。若你想更新分類和反鏈卻又無法做出零編輯,那就只能等待。這取決於服務器在更新前的繁忙程度,這可能是數天。分類鏈接更新會置於工作隊列,服務器會在低負載時重建緩存。
可以直接使用User:WhitePhosphorus-bot/controls/purge來處理
請不要將零編輯和空編輯混淆。空編輯會修改源代碼,雖然這種變動很小。
自定義配置
[編輯]您可以通過在您的用戶子頁面—— User:您的用戶名/common.js中增加代碼,在維基上排標籤式功能中,加上一個清除緩存按鈕。
請單擊打開您的common.js頁面,並加入以下代碼:
mw.loader.load('/wiki/User:AnYiLin/js/PurgePageCache.js?action=raw&ctype=text/javascript');
另一種方法是在參數設置 -> 小工具 -> 瀏覽工具一節中選中「UTC時鐘」,然後保存。之後瀏覽頁面時,點擊右上角的UTC時鐘即可清除頁面緩存。