【B/S】利用AJAX实现分页

前端之家收集整理的这篇文章主要介绍了【B/S】利用AJAX实现分页前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、前言

以前在使用Asp.Net的时候用过GridView这个控件,这个控件自带分页功能,虽然很丑,但是功能还是很强大的。这里呢,给大家展示一下更加给力的方式——利用AJAX无刷新直接从服务器获取数据分页

二、实现过程

注意:一下的内容都是在服务器内使用的。

首先要在服务器的路径下建立几个文件,比如,page1.txt,page2.txt,page3.txt。

每个文件中放入数组,如下:

  1. [{user:'blue',pass:'123'},{user:'aaa',pass:'dsfaa'},{user:'Ares',pass:'12346'}]
  1. 图一 页面一的内容

前台HTML代码

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>AJAX实现分页</title>
  6. <script src="ajax.js"></script>
  7. <script>
  8. window.onload=function ()
  9. {
  10. var oUl=document.getElementById('ul1');
  11. var aBtn=document.getElementsByTagName('a');
  12. var i=0;
  13.  
  14. for(i=0;i<aBtn.length;i++)
  15. {
  16. //给每一个按钮附一个初值索引
  17. aBtn[i].index=i;
  18. aBtn[i].onclick=function ()
  19. {
  20.  
  21. //调用AJAX函数
  22. ajax('page'+(this.index+1)+'.txt',function (str){
  23. //获得其中的数据
  24. var aData=eval(str);
  25.  
  26. oUl.innerHTML='';
  27. for(i=0;i<aData.length;i++)
  28. {
  29. var oLi=document.createElement('li');
  30.  
  31. oLi.innerHTML='<strong>'+aData[i].user+'</strong><i>'+aData[i].pass+'</i>';
  32.  
  33. oUl.appendChild(oLi);
  34. }
  35. });
  36. };
  37. }
  38. };
  39. </script>
  40. </head>
  41.  
  42. <body>
  43. <ul id="ul1">
  44. </ul>
  45. <a href="javascript:;">1</a>
  46. <a href="javascript:;">2</a>
  47. <a href="javascript:;">3</a>
  48. </body>
  49. </html>

封装的AJAX ,JavaScript代码

  1. /*
  2. AJAX封装函数
  3. url:系统要读取文件的地址
  4. fnSucc:一个函数文件取过来,加载完会调用
  5. */
  6. function ajax(url,fnSucc,fnFaild)
  7. {
  8. //1.创建Ajax对象
  9. var oAjax=null;
  10.  
  11. if(window.XMLHttpRequest)
  12. {
  13. oAjax=new XMLHttpRequest();
  14. }
  15. else
  16. {
  17. oAjax=new ActiveXObject("Microsoft.XMLHTTP");
  18. }
  19.  
  20. //2.连接服务器
  21. oAjax.open('GET',url,true);
  22.  
  23. //3.发送请求
  24. oAjax.send();
  25.  
  26. //4.接收服务器的返回
  27. oAjax.onreadystatechange=function ()
  28. {
  29. if(oAjax.readyState==4) //完成
  30. {
  31. if(oAjax.status==200) //成功
  32. {
  33. fnSucc(oAjax.responseText);
  34. }
  35. else
  36. {
  37. if(fnFaild)
  38. fnFaild(oAjax.status);
  39. }
  40. }
  41. };
  42. }

最终实现效果

  1. 图二 展示效果

三、小结

AJAX这个还是要多多尝试的,还要多多的练习。分页是很好的想法,可以提高访问的速度,很好的方法,以后还会更好的给大家带来收获。

猜你在找的Ajax相关文章