全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 15219|回复: 12
打印 上一主题 下一主题

ajax多个请求怎么写……

[复制链接]
跳转到指定楼层
1#
发表于 2017-9-2 21:53:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
200金钱
本帖最后由 muyang 于 2017-9-2 22:16 编辑



不想看代码的,可以直接在w3school上看,( http://www.w3school.com.cn/tiy/t.asp?f=ajax_get )

我想把这个例子中的代码改一下,点一次按钮,能同时请求多个文件,

比如同时请求demo1.php demo2.php demo3.php ……等等


什么js ajax一点也不会,不知道怎么改……



  1. <html>
  2. <head>

  3. <script type="text/javascript">

  4. function loadXMLDoc()
  5. {
  6. var xmlhttp;
  7. xmlhttp=new XMLHttpRequest();

  8. xmlhttp.onreadystatechange=function()
  9. {
  10.   if (xmlhttp.readyState==4 && xmlhttp.status==200)
  11.     {
  12.     document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
  13.     }
  14. }
  15. xmlhttp.open("GET","/demo1.php",true);
  16. xmlhttp.send();
  17. }

  18. </script>

  19. </head>



  20. <body>

  21. <h2>AJAX</h2>
  22. <button type="button" onclick="loadXMLDoc()">请求数据</button>
  23. <div id="myDiv"></div>

  24. </body>
  25. </html>
复制代码
2#
发表于 2017-9-2 21:53:54 | 只看该作者
本帖最后由 Polymer_dg 于 2017-9-3 00:06 编辑

  1. /*AJAX初始化*/
  2. function LoadXMLHttp(){
  3.         var xmlHttp;
  4.         if (window.ActiveXObject) {
  5.                 xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
  6.         }
  7.         else if (window.XMLHttpRequest) {
  8.                 xmlHttp = new XMLHttpRequest();
  9.         }
  10.         else{
  11.                 alert("Your browser does not support XMLHTTP.");
  12.         }
  13.         return xmlHttp;
  14. }

  15. function getData(url,data,callback) {
  16.         var xmlHttp=LoadXMLHttp();       
  17.         var realUrl = url +"?time=" + new Date().getTime();
  18.         realUrl = encodeURI(encodeURI(realUrl));
  19.         xmlHttp.onreadystatechange = function() {
  20.                 if(xmlHttp.readyState==1){
  21.                 }
  22.                 else if (xmlHttp.readyState==4 && xmlHttp.status==200) {
  23.                         var result = xmlHttp.responseText;
  24.                         callback(result);
  25.                         delete xmlHttp;
  26.                         xmlHttp = null
  27.                 }
  28.         }
  29.         xmlHttp.open('POST', realUrl,true);
  30.         xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  31.         xmlHttp.send(data);
  32. }
  33. function callback(data){
  34.        alert(data);
  35. }
  36. function loadXMLDoc(){
  37.        getData("/ajax/demo_get1.asp",'',callback);
  38.        getData("/ajax/demo_get2.asp",'',callback);
  39.        getData("/ajax/demo_get3.asp",'',callback);
  40. }
复制代码
3#
发表于 2017-9-2 21:54:24 | 只看该作者
不是很难吧 自己研究研究  别一下子就问
4#
发表于 2017-9-2 21:57:03 | 只看该作者
大概,就是这个效果把。
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function loadXMLDoc()
  5. {
  6. var xmlhttp;
  7. if (window.XMLHttpRequest)
  8.   {// code for IE7+, Firefox, Chrome, Opera, Safari
  9.   xmlhttp=new XMLHttpRequest();
  10.   }
  11. else
  12.   {// code for IE6, IE5
  13.   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  14.   }
  15. xmlhttp.onreadystatechange=function()
  16.   {
  17.   if (xmlhttp.readyState==4 && xmlhttp.status==200)
  18.     {
  19.     document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
  20.     }
  21.   }
  22. xmlhttp.open("GET","/ajax/C_demo_get.asp",true);
  23. xmlhttp.send();
  24. if (window.XMLHttpRequest)
  25.   {// code for IE7+, Firefox, Chrome, Opera, Safari
  26.   xmlhttp=new XMLHttpRequest();
  27.   }
  28. else
  29.   {// code for IE6, IE5
  30.   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  31.   }
  32. xmlhttp.onreadystatechange=function()
  33.   {
  34.   if (xmlhttp.readyState==4 && xmlhttp.status==200)
  35.     {
  36.     document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
  37.     }
  38.   }
  39. xmlhttp.open("GET","/ajax/B_demo_get.asp",true);
  40. xmlhttp.send();
  41. if (window.XMLHttpRequest)
  42.   {// code for IE7+, Firefox, Chrome, Opera, Safari
  43.   xmlhttp=new XMLHttpRequest();
  44.   }
  45. else
  46.   {// code for IE6, IE5
  47.   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  48.   }
  49. xmlhttp.onreadystatechange=function()
  50.   {
  51.   if (xmlhttp.readyState==4 && xmlhttp.status==200)
  52.     {
  53.     document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
  54.     }
  55.   }
  56. xmlhttp.open("GET","/ajax/A_demo_get.asp",true);
  57. xmlhttp.send();
  58. }
  59. </script>
  60. </head>
  61. <body>

  62. <h2>AJAX</h2>
  63. <button type="button" onclick="loadXMLDoc()">请求数据</button>
  64. <div id="myDiv"></div>

  65. </body>
  66. </html>
复制代码


使用 Nokia 1100 强势回帖!
Chrome 插件测试中...
5#
 楼主| 发表于 2017-9-2 22:00:17 | 只看该作者
Dami 发表于 2017-9-2 21:57
大概,就是这个效果把。

这个好像只请求了最后一个文件,demo3.php 前面两个好像没请求
6#
发表于 2017-9-2 22:08:23 | 只看该作者
muyang 发表于 2017-9-2 22:00
这个好像只请求了最后一个文件,demo3.php 前面两个好像没请求

1.png (60.08 KB, 下载次数: 3)

我会骗你!?


使用 Nokia 1100 强势回帖!
Chrome 插件测试中...
7#
发表于 2017-9-2 22:10:28 | 只看该作者
   引用一个jquery的类库  按钮绑定事件  写多个 $.ajax  
8#
 楼主| 发表于 2017-9-2 22:12:14 | 只看该作者

不好意思……我每个文件弄了个

echo "demo1、2、3";

只看到显示了个demo3,还以为前两个没请求到呢,还以为三个输出会排列显示出来呢……
9#
 楼主| 发表于 2017-9-2 22:18:10 | 只看该作者

兄弟,还有没有简单些的写法,比如请求的文件过多,那得复制好多次那一长段代码了……
10#
发表于 2017-9-2 22:22:32 | 只看该作者
muyang 发表于 2017-9-2 22:18
兄弟,还有没有简单些的写法,比如请求的文件过多,那得复制好多次那一长段代码了…… ...

精简一下也不是不可以,比如下面这样。
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function loadXMLDoc()
  5. {
  6. var xmlhttp;
  7. if (window.XMLHttpRequest)
  8.   {// code for IE7+, Firefox, Chrome, Opera, Safari
  9.   xmlhttp=new XMLHttpRequest();
  10.   }
  11. else
  12.   {// code for IE6, IE5
  13.   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  14.   }
  15. xmlhttp.onreadystatechange=function()
  16.   {
  17.   if (xmlhttp.readyState==4 && xmlhttp.status==200)
  18.     {
  19.     document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
  20.     }
  21.   }
  22. xmlhttp.open("GET","/ajax/demo_get.asp",true);
  23. xmlhttp.send();
  24. xmlhttp.open("GET","/ajax/1demo_get.asp",true);
  25. xmlhttp.send();
  26. xmlhttp.open("GET","/ajax/2demo_get.asp",true);
  27. xmlhttp.send();
  28. xmlhttp.open("GET","/ajax/3demo_get.asp",true);
  29. xmlhttp.send();
  30. xmlhttp.open("GET","/ajax/4demo_get.asp",true);
  31. xmlhttp.send();
  32. xmlhttp.open("GET","/ajax/5demo_get.asp",true);
  33. xmlhttp.send();
  34. }
  35. </script>
  36. </head>
  37. <body>

  38. <h2>AJAX</h2>
  39. <button type="button" onclick="loadXMLDoc()">请求数据</button>
  40. <div id="myDiv"></div>

  41. </body>
  42. </html>
复制代码

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-6-10 01:16 , Processed in 0.071454 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表