2013-05-08 45 views
0

當我使用LIMIT來創建結果頁面時,我們通常如何知道偏移量,即每個請求應該檢索哪個頁面?
通過cookies?我如何知道每個限制的偏移量?

+0

@meagar:你的意思是:'?page = 2'? – Jim 2013-05-08 20:16:28

+0

是的,請參閱[我的答案](http://stackoverflow.com/a/16449423/229044)。 – meagar 2013-05-08 20:19:16

回答

1

傳統上通過查詢字符串參數。網址通常包括?page=3要求3頁,就像你會看遍堆棧溢出:https://stackoverflow.com/questions?page=2&sort=newest

這是你絕對應該通過cookie做。網址應該包含導航到給定頁面所需的所有內容。考慮一下用戶爲第三頁的結果添加書籤,或者嘗試將其他人鏈接到他們正在查看的頁面:使用cookie來存儲分頁數據可以完全打破這些情況。

+0

@fdreger不,不是。在現實世界中,你絕對不應該這樣做。這不是「傳道」,如果你想構建不會破壞用戶眼睛的應用,這是你需要遵循的建議。在會話中存儲*頁碼*,與網址解耦,並不能解決任何*問題,只會引入它們。 – meagar 2013-05-08 20:29:52

+0

僅僅因爲你的經驗關注於一種類型的開發(主要涉及PHP框架,RoR,Django--傳統的,面向行動的框架)並不意味着世界就此結束。 *您*不知道JavaServer Faces,ASP.NET,Vaadin或Errai如何工作並解決實際問題 - 並不會使它們變得更差。或更好。只是不同。 – fdreger 2013-05-08 20:42:09

+0

@fdreger:嗨!我認爲微不足道的意思是將頁碼存儲爲會話對象的一部分是不鼓勵的。不是使用會話對象來存儲會話數據通常是一個壞主意。至少這是我如何理解他的答案。在這種情況下,不能書籤書籤的問題似乎對我來說似乎是合理的。 – Jim 2013-05-08 20:54:38

0

通常通過操作框架(RoR,ZF,Cake,Django)中的請求參數和組件框架(Prado,JSF,ASP.NET)中的會話狀態。會話通常與Cookie請求相關聯。

使用會話存儲當前頁面在面向業務的應用程序中很常見,其中gui的狀態可能非常複雜,並且實際上可以爲頁面添加書籤。

+0

「共同」是主觀的,「共同」並不意味着「正確」。這仍然是一個可怕的做法,並*打破*你的網址欄。情有可原的情況總是存在,但告訴新用戶,這是有效的,不瞭解他們的情況,是*錯*。正確的決定是*總是*將查詢字符串用於其設計的內容,並且在您確實有足夠的經驗知道需要偏差時進行偏離。 – meagar 2013-05-08 20:59:19

相關問題