example11.html 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <button id="ok">换一组</button>
  9. <div id="container"></div>
  10. <!-- HTML: Hyper-Text Markup Language -->
  11. <!-- XML: eXtensible Markup Language -->
  12. <!-- XML最为重要的用途是在两个异构的系统之间交换数据 -->
  13. <!-- 现在这项功能基本上被JSON和YAML格式替代了 -->
  14. <!-- Ajax: Asynchronous JavaScript and XML -->
  15. <!-- 通过JavaScript代码向服务器发起异步请求并获得数据 -->
  16. <!-- 异步请求:在不中断用户体验的前提下向服务器发出请求 -->
  17. <!-- 获得数据后可以通过DOM操作对页面进行局部刷新加载服务器返回的数据 -->
  18. <script>
  19. (function() {
  20. var page = 0;
  21. var div = document.getElementById('container');
  22. var button = document.getElementById('ok');
  23. button.addEventListener('click', function() {
  24. // 1. 创建异步请求对象
  25. var xhr = new XMLHttpRequest();
  26. if (xhr) {
  27. page += 1
  28. var url = 'http://api.tianapi.com/meinv/?key=772a81a51ae5c780251b1f98ea431b84&num=10&page=' + page;
  29. // 2. 配置异步请求
  30. xhr.open('get', url, true);
  31. // 3. 绑定事件回调函数(服务器成功响应后要干什么)
  32. xhr.onreadystatechange = function() {
  33. if (xhr.readyState == 4 && xhr.status == 200) {
  34. div.innerHTML = '';
  35. // 5. 解析服务器返回的JSON格式的数据
  36. var jsonObj = JSON.parse(xhr.responseText);
  37. var array = jsonObj.newslist;
  38. // 6. 通过DOM操作实现页面的局部刷新
  39. for (var i = 0; i < array.length; i += 1) {
  40. var img = document.createElement('img');
  41. img.src = array[i].picUrl;
  42. img.width = '250';
  43. div.appendChild(img);
  44. }
  45. }
  46. };
  47. // 4. 发出请求
  48. xhr.send();
  49. } else {
  50. alert('使用垃圾浏览器还想看美女,做梦!');
  51. }
  52. });
  53. })();
  54. </script>
  55. </body>
  56. </html>