Prefetching 的問題

這看到關於 Web Accelerator 如果使用 Prefetching 會造成的問題:Web acceleration without prefetching

有些網站設計上有些瑕疵,會用 <a href="blah.php?action=suicide">刪除帳號</a> 這種方法來傳指令,然後自以為很聰明的用 Javascript 跳出一個 Yes/No 的視窗確認。這種網站在遇到 Prefetching 時就會... 舉個例子說, 的 logout 就是一個例子。

比較「中性」的方法是放棄這麼激烈的作法,改用 DNS cache,然後先連線到對方主機,但先不要送資料。這樣可以省下 DNS 查詢的時間以及建立 TCP Connection 的時間。只比原來 Prefetching 的方法少了最後抓資料的時間,但卻讓穩定性上升不少。

4 thoughts on “Prefetching 的問題

  1. :~~~~~~~~~~

    我在寫公司的網頁都是 a href='blah.php?delete=id' onclick='return confirm(....);' 這樣子... (默)

  2. Rails 裡面的解法,是使用一個叫做 button_to 的 function,來取代 link_to 這個 function。
    用 link_to 的話,會產生像這樣的 URL:

    Delete

    用 button_to 的話,則是

    我想這樣可以有效防止 prefetch 而衍生出的問題。

    不過看了就知道,要在非 Rails 系統上這麼做的話,Server 端也要能夠正確處理才是。

  3. Rails 裡面的解法,是使用一個叫做 button_to 的 function,來取代
    link_to 這個 function。用 link_to 的話,會產生像這樣的 URL:

    <a href="/data/delete/123">Delete</a>

    用 button_to 的話,則是

    <form action="/data/delete/3" method="post">
    <div><input type="submit"/></div>
    </form>

    我想這樣可以有效防止 prefetch 而衍生出的問題。

    不過看了就知道,要在非 Rails 系統上這麼做的話,Server 端也要能夠正確處理才是。

Leave a Comment