Wikipedia:維基百科工具/強迫更新
维基百科,自由的百科全书
強迫更新是一種手動讓伺服器清除暫時存取舊頁面的方式,英語叫做Purge。當用戶使用這個功能時,可以看到整頁被軟體馬上更新為新版本,而不會看到舊的暫存畫面。
對有些加上了大量外部頁面、或是模版的維基百科頁來說,剛加上模版時,也許沒有辦法馬上看到,這時使用「強迫更新」是有幫助的。
目前維基使用一個簡易模版來讓使用者強迫更新該頁面,用法是{{purge|強迫更新主機舊頁面}},非常簡單。
[编辑] 給那些想要知道過程的好奇寶寶
當一個維基頁面被更改時,Mediawiki,也就是維基百科的主系統軟體,會將更改存在主資料庫當中。下一次當未登入的用戶看到這個頁面,主資料庫會自動複製一份「主機快取」(Server Cache)在第二個主機上。一直到這個頁面的下一次更改前,未登入的用戶都會看到這個複製畫面,這一點能有利主資料庫的負荷減少。
登入的用戶則可以選擇,是否要在個人設定當中選「觀看主機快取」、「現在的即時檔」
一般來說,當頁面更動造成,就會有一個小小的標記「更動過」傳回給主機,這個標記意味著主機可複製一份快取。不過,當頁面讀取的是許多頁面的一部份,例如,分類頁面讀取的是很多條目的標題,主題首頁的頁面讀取的是很多模板上的資訊,這個頁面上,「更動過」的小小標記就不會被處理(因為更新的並非該頁面資料,而是該頁面內包其他頁面的資料),於是主機也不會製造一份快取,那麼其他如未登入的用戶所看到的,就會是舊的快取,而非更新後的頁面。
強迫更新這個功能,事實上使用的僅是加在條目連結後的一段語法,寫成「&action=purge」,一但操作它之後,主機快取就會被強迫刪除,替代之最新版本,包括內含的模板、頁面標題等,都會以最新的更改版本取代。
[编辑] 給經常需要強迫更新頁面的維基愛用者
在monobook的皮膚設定下(也就是預設值), 您可以透過增加一頁monobook.js的語法, 也就是代碼 [[User:某某/monobook.js]] 的方式,在維基上排標籤式功能中,加上一個強迫更新按鈕。方法如下。
- 將[[User:某某/monobook.js]]當中的某某,換成您的帳號,並在沙盒中預覽,讓它是一個紅色的待撰頁面。
- 開始編輯這個待撰頁面。請輸入下列代碼。
/* * Add 'Purge' button to list: */ function addPurgeButton() { var href = document.location.href; if ( href.search( /^http:\/\/en\.wikipedia\.org\/wiki\// ) == 0 ) { var historyHref = document.getElementById( "ca-history" ).firstChild.href; var div = document.getElementById( "p-cactions" ); var ul = div.getElementsByTagName( "ul" )[0]; var newLi = document.createElement( "li" ); var newA = document.createElement( "a" ); newA.setAttribute( "href" , historyHref.replace( "=history" , "=purge" ) ); var text = document.createTextNode( "Purge Cache" ); newA.appendChild( text ); newLi.appendChild( newA ); ul.appendChild( newLi ); } } window.addEventListener( "load" , addPurgeButton , false );