你這個(gè)功能比較奇葩。如果你的搜索量很大呢,也不分頁嗎?那這么大的數(shù)據(jù)量光數(shù)據(jù)庫(kù)查詢和瀏覽器解析只怕都是很大的壓力。
站在用戶的角度思考問題,與客戶深入溝通,找到澄江網(wǎng)站設(shè)計(jì)與澄江網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋澄江地區(qū)。
如果是這樣做。
那么加一個(gè)按鈕后,因?yàn)槟阕兊闹皇菙?shù)據(jù),而數(shù)據(jù)又一般是模板顯示的,因此需要你去更換你的編譯之前的html文件。
我能想到的也只有換一個(gè)html文件了
$sql="select * from sjg where xh like '%$xh%' order by ID asc limit $offset,$pagesize ";
$xh替換為:$_REQUEST['xh'];
'search.php?id=$_GET[id]page=$nextpage替換為
'search.php?id=$_GET[id]page=$nextpagexh=?php echo $xh ?
'search.php?id=$_GET[id]page=$prepagexh=?php echo $xh ? 替換為
問題在于沒有上一頁 下一頁沒有傳遞$xh參數(shù)
1, url不帶參數(shù)的話你可以使用post啊;
2, 不建議你一下把數(shù)據(jù)都拿下來再本地做分頁,最好只取需要的數(shù)據(jù),試想你有1000000000000條數(shù)據(jù);
Lucene搜索結(jié)果分頁 query+cache 輸在lucene搜索分頁過程中,可以有兩種方式一種是將搜索結(jié)果集直接放到session中,但是假如結(jié)果集非常大,同時(shí)又存在大并發(fā)訪問的時(shí)候,很可能造成服務(wù)器的內(nèi)存不足,而使服務(wù)器宕機(jī)還有一種是每次都重新進(jìn)行搜索,這樣雖然避免了內(nèi)存溢出的可能,但是,每次搜索都要進(jìn)行一次IO操作,如果大并發(fā)訪問的時(shí)候,你要保證你的硬盤的轉(zhuǎn)速足夠的快,還要保證你的cpu有足夠高的頻率而我們可以將這兩種方式結(jié)合下,每次查詢都多緩存一部分的結(jié)果集,翻頁的時(shí)候看看所查詢的內(nèi)容是不是在已經(jīng)存在在緩存當(dāng)中,如果已經(jīng)存在了就直接拿出來,如果不存在,就進(jìn)行查詢后,從緩存中讀出來.比如:現(xiàn)在我們有一個(gè)搜索結(jié)果集 一個(gè)有100條數(shù)據(jù),每頁顯示10條,就有10頁數(shù)據(jù).安裝第一種的思路就是,我直接把這100條數(shù)據(jù)緩存起來,每次翻頁時(shí)從緩存種讀取而第二種思路就是,我直接從搜索到的結(jié)果集種顯示前十條給第一頁顯示,第二頁的時(shí)候,我在查詢一次,給出10-20條數(shù)據(jù)給第二頁顯示,我每次翻頁都要重新查詢第三種思路就變成了我第一頁僅需要10條數(shù)據(jù),但是我一次讀出來50條數(shù)據(jù),把這50條數(shù)據(jù)放入到緩存當(dāng)中,當(dāng)我需要10--20之間的數(shù)據(jù)的時(shí)候,我的發(fā)現(xiàn)我的這些數(shù)據(jù)已經(jīng)在我的緩存種存在了,我就直接存緩存中把數(shù)據(jù)讀出來,少了一次查詢,速度自然也提高了很多.如果我訪問第六頁的數(shù)據(jù),我就把我的緩存更新一次.這樣連續(xù)翻頁10次才進(jìn)行兩次IO操作同時(shí)又保證了內(nèi)存不容易被溢出.而具體緩存設(shè)置多少,要看你的服務(wù)器的能力和訪問的人數(shù)來決定。