Auto-save failed in wordpress 2.9
這該是 Wordpress 2.9 的 bug 吧,至少當我升上 2.9 之後,才開始發現這個問題。從某一版 wordpress 開始,支援了 auto-save 功能,可以自動儲存目前正在編輯的文章,以避免誤關 browser 或其它因素,導致正在編輯的文章內容流失。
然而,從 2.9 版開始,我發現,當我開啟一個新文章,正在編輯文章標題,還未按下 Save Draft 或 Publish 按鈕時,因為我動作通常很慢,此時 auto-save 功能會發揮作用,先幫我存了一個版本。然後,當我決定該是存檔的時候,按下 Save Draft 或 Publish 時,wordpress 反而會顯示「Your attempt to edit this post "<title>" has failed.」的錯誤訊息。此時,若是回上一頁重來,browser 的 cache 不一定會幫我們保留住剛剛所編輯的所有文章內容;而若是按下「try again」,會存成一篇與 auto-save 所存的文章不同編號的新文章,且此新文章毫無內容,auto-save 存的版本,又僅含 auto-save 的那個時間點的內容,後者以我來說,通常是半個標題而已。
這種會剛剛寫的一大堆東西消失不見的現象,讓我想要撞牆好幾次,後來才抓出問題的規律來。
這其實是個 race condition,auto-save 功能自動存了一個版本,而因為此版本已經選擇了一個文章編號,當使用者按下 Save Draft 或 Publish 按鈕時,就會因為文章編號已存在,而存檔失敗。因為顯示錯誤訊息的頁面,沒有夾代文章內容,於是當「try again」時,會存成空白內容的新文章。
解決方法?沒有,我沒有時間找,暫時在開完新文章後馬上按「Save Draft」按鈕迴避之。



Post a Comment