1、asp.net ajax分頁
關於生成httprequest對象。
這段代碼相信有用。
從bingo.js里抽出來的
var _httpRequest;
if (window.XMLHttpRequest){
_httpRequest = new XMLHttpRequest();
}else if (window.ActiveXObject) {
var MSXML=['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
for(var n=0;n<MSXML.length;n++){
try {
_httpRequest=new ActiveXObject(MSXML[n]);
break;
}catch(e){}
}
}
2、jquery ajax分頁插件 怎麼寫
包括常用的載入失敗重試,參數可配置是否能手動輸入頁碼,設置按鈕數目,可以調用多個page等等,調用代碼很簡便
<script type="text/javascript">具體jquery.kun_page.js:
/*樣式kun_page.css:
.kun_page {font-size: 12px;line-height:23px;font-family:"Microsoft YaHei";}樣式和動畫都可以自己修改(好吧,動畫效果很樸素,鬧哪樣,明明想了很久好嗎)
pageChange事件裡面也沒有過多的其他處理,比如我們公司前後台處理json就有一套方案,ajax提交的參數也有處理
所以若有需求,完全可以在我的代碼上再封裝一層
3、jquery ajax非同步分頁是什麼意思
普通的分頁都是通過程序輸出一段鏈接地址,如
<a href="news.php?page=1">1</a>這樣 當你點擊1,2,3鏈接頁碼的時候,會跳轉到不同的數據頁面,會有個跳轉的過程
而ajax分頁就是類似這樣
<a onclick="jump(1)" href="javascript:void(0)">1</a>function jump(id) {過程就是用ajax向伺服器請求資源,把資源再通過js改變到當前頁面。好處就是,無刷新,頁面不會跳轉,整個網頁資源不用重新載入,用戶體驗較好。
4、jsp如何做Ajax分頁啊?
如果你要簡單的話推薦你用ExtJs框架,這個Ajax框架使用簡單而且界面元素豐富。下載ExtJs開發包,回裡麵包括答各種控制項的使用例子,復制到你的項目然後稍作修改就行了,非常簡單,這個地址可以下載: http://58.251.57.206/down?cid=&t=2&fmt=-遇到困難可以聯系我,我寫過不少Ext的例子。8015 8703
5、PHP如何實現ajax分頁總結
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>Ajax做分頁</title> <script src="bootstrap/js/jquery-1.11.2.min.js"></script> <script src="Ajax_pag.js"></script> <script src="bootstrap/js/bootstrap.min.js"></script> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"/> </head> <style> .header{ margin-top: 20px; } </style> <body> <div style="margin-top: 20px; margin-top: 20px;"> 關鍵字: <input id="key" type="text" name="gjz"/> <input type="button" value="查詢" id="ck" /> </div> <table class="table table-bordered header"> <thead> <tr> <th>地區代號</th> <th>地區名稱</th> <th>父級代號</th> </tr> </thead> <tbody id="list"> </tbody> </table> <div style="margin:0 auto; width:500px;"> <ul class="pagination" id="fenye"> </ul> </div> </body></html>
6、java 使用ajax實現分頁
用ajax分頁,網路那麼你的重點就不是Java了,
你需要掌握非常好的javascript,或者是js的類庫(jquery,dojo)
後台的Java代碼是內和平常的分頁邏輯容是一樣的
只是頁面的代碼不一樣
以Jquery為例
假如這個是按下的連接
<a href="#" onclick="subpage(${xxx})">xxx</a>
//${}可以使EL表達式,或者是JSTL、OGNL,使用這個來動態確定分頁的頁碼
function subpage(pagenum){
$.ajax({
url:"分頁鏈接地址",
type:"POST",
data:"pagenum="+pagenum;
success:function(data){ //data是分頁後的數據,推薦json形式
...這里是數據返回後對頁面的響應代碼
...也就是你頁面的變動,在這個需要的是你的js功底來控製表格
...的變動,
}
});
}
7、如何通過ajax,html和php實現分頁功能呢?
寫法有很多種,比如:
html頁面中:
<div id="shi"></div>
js:
$.get("1.php",{參數},function(data)
{
$("#shi").html(data);
});
即當點擊上一頁或下一頁時觸發一回個函數,執行上面的答代碼,把返回的內容放在<div id="shi">這里</div>
data就是php 文件返回的內容;那個sql語句應該是這樣寫的吧:
select * from table order by id desc limit ($page-1)*每頁個數,($page)*每頁個數
這里用到了jquery.
其它還有一種思路,就是當第一次載入時,把所有的內容都從資料庫里讀出來了,然後在瀏覽器用js處理分頁,在php發送數據時最好用json格式,這樣更好處理
8、ajax 分頁 思想
大致思路有兩種
1.在客戶端傳遞頁碼到服務端 服務端根據頁碼在資料庫中取出相應的數據記錄
生成datase或通過我前面一片日誌裡面推薦的使用LoadTemplate方法生成string返回給客戶端
然後客戶端更新html即可,這里需要分頁的sql語句,對於access 我參考了博客園李洪根推薦的select top語句
詳細見他的blog
2.對於小數據量的分頁 如果你sql不熟 也可以將數據一次性讀取到dataset
根據頁碼 計算當前頁的記錄編號 生成子dataset 返回同上的結果即可
這樣做只涉及到簡單的數學計算 利用datatable的rows.count很容易實現
附:datatable的復制
etc:
DataTable dt2=dt.Clone();
for(int i=0;i<dt.Rows.Count;i++)
{
dt2.ImportRow(dt.Rows[i]);
}
第二種方法稍微簡單 只討論第一種方法
需要注意的是 我們在客戶端傳遞頁碼
那麼我們必須在客戶端生成相應的分頁代碼
js代碼參考
strHtml += '<span class="count">Pages: ' + this.page + ' / ' + this.pageCount + '</span>';
strHtml += '<span class="number">';
if (prevPage < 1) {
strHtml += '<span title="First Page">«</span>';
strHtml += '<span title="Prev Page"></span>';
} else {
strHtml += '<span title="First Page"><a href="javascript:loadpage(1)">«</a></span>';
strHtml += '<span title="Prev Page"><a href="javascript:loadpage('+prevPage+')"></a></span>';
}
if (this.page % 10 ==0) {
var startPage = this.page - 9;
} else {
var startPage = this.page - this.page % 10 + 1;
}
if (startPage > 10) strHtml += '<span title="Prev 10 Pages"><a href="javascript:loadpage('+ (startPage - 1) +')">...</a></span>';
for (var i = startPage; i < startPage + 10; i++) {
if (i > this.pageCount) break;
if (i == this.page) {
strHtml += '<span title="Page ' + i + '">[' + i + ']</span>';
} else {
strHtml += '<span title="Page ' + i + '"><a href="javascript:loadpage('+i+')">[' + i + ']</a></span>';
}
}
if (this.pageCount >= startPage + 10) strHtml += '<span title="Next 10 Pages"><a href="javascript:loadpage('+(startPage + 10)+')">...</a></span>';
if (nextPage > this.pageCount) {
strHtml += '<span title="Next Page"></span>';
strHtml += '<span title="Last Page">»</span>';
} else {
strHtml += '<span title="Next Page"><a href="javascript:loadpage('+nextPage+')"></a></span>';
strHtml += '<span title="Last Page"><a href="javascript:loadpage('+this.pageCount+')">»</a></span>';
}
strHtml += '</span><br />';
break;
上面的代碼是生成分頁的核心代碼 這樣 通過自定義的loadpage(obj)事件[obj就是點擊的頁碼]
我們可以利用ajax向服務端傳遞當前頁碼以獲取返回結果
服務端首先需要的是一個Access的分頁類 我自己寫了一個
public class AccessPager
{
//internal member
private string table=string.Empty;
private int pagesize=10;
private int pageindex=1;
private string orderkey = string.Empty;
/// <summary>
/// contrustors
/// </summary>
/// <param name="tablename"></param>
/// <param name="curpage"></param>
/// <param name="size"></param>
public AccessPager(string tablename, int curpage, int size,string key)
{
table = tablename;
pagesize = size;
pageindex = curpage;
orderkey = key;
}
/// <summary>
/// get record count
/// </summary>
/// <returns></returns>
public int recCount()
{
string sql = "select count(*) from " + table;
return (int)AccessHelper.ExecuteScalar(System.Data.CommandType.Text, sql, null);
}
/// <summary>
/// get all page count
/// </summary>
/// <returns></returns>
public int pageCount()
{
if (recCount() % pagesize == 0)
return recCount() / pagesize;
else
return (recCount() / pagesize) + 1;
}
/// <summary>
/// get dataset
/// </summary>
/// <returns></returns>
public System.Data.DataSet ExecuteDataSet()
{
string sql = string.Empty;
if (pageCount() > 1)
{
if (pageindex == 1)
sql = "select top " + pagesize.ToString() + " * from " + table + " order by " + orderkey + " desc";
else if (pageindex < pageCount())
{
int endcount = pagesize * (pageindex-1);
sql = "select top " + pagesize.ToString() + " * from " + table + " where (" + orderkey + "<(select min(" + orderkey + ") from (select top "+endcount.ToString()+" "+orderkey+" from "+table+" order by "+orderkey+" desc) as t)) order by "+orderkey+" desc";
}
else if(pageindex>=pageCount())
{
if (recCount() % pagesize == 0)
{
sql = "select top " + pagesize.ToString() + " * from " + table + " order by " + orderkey + " desc";
}
else
{
int pLeft=recCount()%pagesize;
int endcount = pagesize * (pageindex - 1);
sql = "select top " +pLeft+ " * from " + table + " where (" + orderkey + "<(select min(" + orderkey + ") from (select top " + endcount.ToString() + " " + orderkey + " from " + table + " order by " + orderkey + " desc) as t)) order by " + orderkey + " desc";
}
}
}
else
sql = "select * from " + table+" order by "+orderkey+" desc";
return AccessHelper.ExecuteDataset(sql, System.Data.CommandType.Text, null);
}
}
這樣就可以根據表名稱 排序id(我這個類只針對有編號且編號為主鍵的情況)頁碼 每頁大小取出dataset了
然後 在頁面的ajax方法中 我們 首先 默認情況下載入第一頁的數據
<div id="main">
<script language="javascript" type="text/javascript">
Blog_index.getData(1,2,_callback);
function _callback(res){
$('main').innerHTML=res.value; }
</script>
</div>
當點擊js生成的分頁控制項上的頁碼時 觸發以下事件
<script language="javascript" type="text/javascript">
function loadpage(obj){
$('main').innerHTML='<img src="../images/indicator.gif" alt="" />數據載入中......';
$('txtPageCount').value=obj;
var pg2 = new showPages('pg');
pg2.pageCount =<%=getCount(2)%>;
pg2.page= $('txtPageCount').value;
pg2.printHtml(1);
Blog_index.getData(obj,2,loadpage_callback);
}
function loadpage_callback(res){
$('main').innerHTML=res.value;
}
</script>
下面的是js生成分頁控制項的代碼
<div id="page_container">
<div id="Pages"></div>
<input id="txtPageCount" type="text" style="display:none"/>
<script language="javascript" type="text/javascript">
var pg = new showPages('pg');
pg.pageCount =<%=getCount(2)%>;
pg.page=1;
pg.printHtml(1);
</script>
</div>
9、關於ajax無刷新分頁
最好是沒次翻頁通過ajax來獲取一個你設置的值域的數據,因為如果後台數據有上千條的話,你一次請求那麼多數據,響應會很慢!
最好不要一次請求完。
10、通過ajax的方式能有效防止網頁數據被採集嗎
通過ajax能在一定程度上防止網頁數據被採集。
要想弄明白其中的原因,首先要了解網頁採集工具的工作原理,現在流行的網頁採集工具絕大多數都是讀取文檔,從文檔中採集信息。
說ajax在一定程度上可以防止網頁數據被採集是因為ajax獲取的數據一般是通過js生成標簽,這種標簽是不在文檔中的,抓取工具自然就抓取不到這些數據。
ajax和js雖然利於用戶體驗,還能在一定程度上防止網頁數據被採集,但是卻不利於優化,因為搜索引擎爬取工具的工作原理跟網頁抓取工具的原理是類似的,網頁抓取工具抓取不到的內容,搜索引擎也抓取不到,這樣就不利於網站的seo優化了。
一個網站要有自己的定位,商業型的網站要做seo優化提升搜索量,要盡量不去用ajax載入大量內容;系統型網站注重實用,可以多用ajax提升用戶體驗;內容原創性較高的網站也可以用ajax和js配合載入文檔,防止內容被抓取。