2011-03-18 95 views
1

分頁重要嗎?如果您有200個參賽作品,會發生什麼。它會減慢使用它的人的網站嗎?分頁是必要的嗎?

很抱歉,如果這聽起來像一個簡單的問題,只是想知道,新的遊戲。

感謝

更新:

閱讀答案後。我認爲使用它們很重要。那麼我怎樣才能使用限制搜索頁面。不找一個奇特的解決方案..

回答

2

它更高效,快捷和服務器友好向上突破的結果成多個頁面。

首先,大多數用戶不會考慮第一個X結果,而不考慮一個頁面上有多少個結果,所以會有很多未使用的結果被檢索,處理併發送到客戶端這浪費了帶寬和CPU時間。事實上,通過分頁,您可以增加他們繼續瀏覽的機會,如果這些內容全部在一個頁面上,他們就會停止。二,如果這只是文本數據,即使對於大量的數據也是非常快速的,但是如果你扔圖片和必須顯示每個結果的東西,比如在一個目錄中,那麼事情真的開始減慢返回的更多結果。

通過LIMIT在SQL中進行分頁是通過使用限制範圍完成的。當在SQL查詢中給出LIMIT的單個參數時,它將返回最大數量的結果,因此SELECT * FROM table LIMIT 5將返回至多5個結果。當給出兩個參數時,它會跳過結果直到達到第一個參數,然後返回到下一個結果數。因此,SELECT * FROM table LIMIT 40,10將從第41個結果開始返回最多10條記錄。

所以,你需要的是某種方式來告訴服務器哪些頁面或導致客戶端想,這通常是由分頁鏈接的東西像做:http://www.domain.com/search.php?p=4http://www.domain.com/search.php?r=40,然後您可以通過$ _GET使用該值以確定SQL查詢中的限制是什麼。喜歡的東西(用通過GET傳遞在這種情況下頁碼):

<?php 
$sql = "SELECT * FROM `table`"; //Set up initial query string 

$max_per_page = 20; //Max results per page, can be drawn from elsewhere/configuration file or something or declared directly 
if(isset($_GET['p'])) //Check to see if $_GET['p'] is set 
{ 
    $current_limit = abs((int)$_GET['p'] - 1) * $max_per_page; //Current limit = max * (current page - 1) other wise, page 2 would have a starting point of 40 instead of 20 like it should. When passing the result number to start on, you'd just use that instead 
} 
else 
{ 
    $current_limit = 0; 
} 
$sql .= ' LIMIT ' . $current_limit . ', ' . $max_per_page; //Construct LIMIT on end of query string 
$result = mysql_fetch_assoc(mysql_query($sql)); 
?> 

哦,來算出總成績,你可以做一個SELECT COUNT(*) FROM table WHERE etc. etc.類型的語句入手,讓你知道總的結果,其可以用來確定需要多少頁面,因爲您知道每頁的最大結果。

+0

如何使用限制進行分頁? – AAA 2011-03-18 01:09:43

+0

像SQL查詢限制一樣?好吧,讓我編輯我的答案。 – Phoenix 2011-03-18 01:14:59

+0

好了編輯包含其他信息。您還必須將搜索條件傳遞給每個頁面,無論是通過$ _GET還是$ _SESSION或其他方式,最好先執行count查詢以獲取總結果並將結果保存在$ _SESSION中,或者你不必爲每個頁面計數。 – Phoenix 2011-03-18 01:55:33

2

好分頁會幫助你既可以減少您服務的客戶端和數據庫的查詢費用頁面的權重。 (因爲你只需要加載10或20個項目而不是一千個)。

當然,用戶體驗也非常重要。沒有人想滾動幾天在網頁上找到某些東西。

1

分頁是必要的嗎?依靠。每次我寫任何從數據庫中列出實體的頁面時,我都會對它們進行分頁(按需)。

但是,如果我添加一個,可以說,新的client,可能有State?在這種情況下,顯示所有狀態的選擇框不會被分頁。因爲它易於用戶閱讀,並且通常不會加載大量數據。

但是對於更復雜和更大的查詢,您總是必須設置限制並從數據庫中加載數據根據需要。所有軟件都在成長。如果你不分頁,有一天你會有一些頭痛。

2

我認爲存在比技術更大的心理障礙。大多數硬件都能夠快速分頁大量文本。但是,人們不可能一直讀到一篇非常有趣的文章。

它通常是很好的做法,打破大量的文字成小塊爲用戶的便利性 - 並提供全文以供下載。

此外,線條和間距的長度對於捕捉觀衆非常重要。我會推薦1.5em行間距,每行大約15字。

不像印刷媒體 - 人不可能到達終點 - 並找出誰-疑案,他們只是保釋,如果他們不享受幾個段落。試想一下,讀者的手指在左側按鈕上,另一個在滾輪上 - 就像你現在可能正在做的那樣 - 只是想要離開這個頁面並閱讀其他內容。

1

它給完成的更好的感覺,如果你使用的是正確的,更好的方式來顯示您希望用戶可以快速查看(最優惠的價格,最便宜的價格,等等)是什麼。在我看來,它會保持更好的關注。