這項應用不是高科技,它行之有年了。
當初以這個架構來修改天空部落的留言系統,解決了很多的問題。
此種方法會被極少部份的瀏覽器擋下,但影響的人數極少。然而此種POST方法,可大幅增進使用者的便利性。
問題1:POST失敗
post常常會出現一個大問題,就是post不成功。大多數造成的原因是client端網路或瀏覽器的問題,而不是server端的問題。post常用在使用者寫文章、留言。然而當post不成功,或者是驗證碼錯誤,使用者一切努力都會白費。
問題2:驗證碼Loading
另外,以前的天空部落和無名小站現在一樣,每一篇文章的最下面,都會出現驗證碼。
要跑出驗證碼的loading很重,往往是以php來產生。
另外,對SESSION系統還是會有一定的loading在。
解決方案
先window.open一個空白的視窗,再POST到這個新視窗
POST成功後,新視窗父視窗給重整,自己再關閉 opener.reload(); window.close();
常見問題
- 如果POST到不同網域,那如何讓 opener reload ? 新視窗先導回 opener網域中的其中一頁,再進行 reload和關閉的動作即可。
- 某些瀏覽其中,無法觸發submit。 是的,本人幾次經驗中都無法觸發,一定要有完整的form的結構,而且form裡面要有type是submit的input才行。
範例程式請去天空部落看。