2009-12-16 124 views
2

在生產基於Web的數據輸入系統,是事實,你將每頁一個額外的服務器請求,決定是否要使用後,當顯著關注/重定向/獲取設計?後/重定向/獲取

回答

4

是的,但不是簡單的性能原因。

如果具有負載平衡和數據庫複製,你必須確保GET開機自檢後會真正看到的是已經公佈的數據,所以你必須配置負載均衡將用戶重定向到你的「主」網站或完全相同的機器,收到POST(取決於你如何實現存儲)。

單獨的請求是沒有問題的,尤其是替代給人非常糟糕的用戶體驗,並可能導致甚至比簡單的重定向更superflous請求。

+2

另一種選擇是使用數據庫鏡像而不是複製,並使用memcached進行緩存。那麼用戶重定向到哪個前端並不重要。 – 2009-12-16 19:40:14

+0

感謝您的額外考慮! – Wes 2009-12-16 19:43:29

0

大多數時候,帖子只發生在數據發生變化時。網站上的流量和CPU時間最多的是由查詢(GETS)生成的,而不是更改,所以我認爲這些額外的請求不是很重要。

1

如果我理解你的問題(我不完全知道我這樣做),這絕對是很好的設計後後做重定向,即使你是顯示它們與更新的信息相同的頁面。

通過做你正在打破當前查看的頁面和造成的變化POST之間的連接重定向。用戶可以書籤和/或刷新頁面,而不用彈出詢問「你想重發數據嗎?」

+0

你能舉一個實例嗎? – 2017-07-30 14:00:24

+0

我不知道你使用的是什麼語言/框架/服務器,但是網上有大量的例子可用語言。只需搜索POST/REDIRECT/GET即可。 [這裏是維基百科](https://en.wikipedia.org/wiki/Post/Redirect/Get)頁面。 – 2017-07-30 20:36:23

+0

我已經瀏覽了所有這些文章,但仍然無法理解。我在這裏理解的是:在abc.php

然後在xyz.php中我應該使用$ x = $ _ POST收集數據[''];然後重定向到abc.php並使用$ x = $ _ GET [''];再次收集數據?這很混亂。 – 2017-08-01 19:40:29

0

我認爲這提供勝過小的性能損失的可用性。

0

測試它通過執行一些性能基準測試,你將能夠看到它是否將是你的具體情況令人擔憂。有關更多信息,請參閱this article