博客列表 >Ajax请求实例,与懒加载技术

Ajax请求实例,与懒加载技术

小庄
小庄原创
2021年07月15日 15:16:50519浏览

Ajax请求实例,与懒加载技术


  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <ul>
  11. </ul>
  12. <img width="100%" data-src="https://img.php.cn/upload/article/000/000/003/60c034e9d3595631.jpg" alt="" />
  13. <img width="100%" data-src="https://www.php.cn/static/images/index_yunv.jpg" alt="" />
  14. <img width="100%" data-src="https://img.php.cn/upload/course/000/000/015/60eeb1f094ce0888.png" alt="" />
  15. <img width="100%" data-src="https://img.php.cn/upload/course/000/000/010/60bf1859d6f23449.jpg" alt="" />
  16. <img width="100%" data-src="https://img.php.cn/upload/course/000/000/001/5d1c6dfc9eb09885.jpg" alt="" />
  17. <script>
  18. // ### 2.1 xhr 请求步骤
  19. // 1. 创建 xhr 对象: `const xhr = new XMLHttpRequest()`
  20. // 2. 配置 xhr 参数: `xhr.open(type, url)`
  21. // 3. 处理 xhr 响应: `xhr.onload = (...) => {...}`
  22. // 4. 发送 xhr 请求: `xhr.send(...)`
  23. // 问:Ajax get,post请求的区别
  24. // 答:get请求参数会出现在地址栏,一般用户读取数据
  25. // 答:post请求的参数会隐藏在请求头中,地址栏不会发生任何变化,相对较安全,一般用于提交数据
  26. getData();
  27. function getData(){
  28. const xhr = new XMLHttpRequest();
  29. let url = "https://api.apiopen.top/videoCategory";
  30. xhr.open('GET',url);
  31. xhr.responseType = 'json';
  32. xhr.onload = function (e){
  33. // console.log(e.currentTarget.response.result.itemList);
  34. const ul = document.querySelector('ul');
  35. for(let i = 0;i<e.currentTarget.response.result.itemList.length;i++){
  36. const li = document.createElement('li');
  37. li.textContent = e.currentTarget.response.result.itemList[i].data.description;
  38. li.style.height = '3rem';
  39. ul.append(li);
  40. }
  41. }
  42. xhr.onerror = function (){console.log('请求错误!')};
  43. xhr.send(null);
  44. }
  45. //onscroll 实现懒加载
  46. let img = document.images;
  47. window.onscroll = function(){
  48. [...img].forEach(img =>{
  49. if(img.getBoundingClientRect().top < window.innerHeight){
  50. img.src = img.dataset.src;
  51. }
  52. })
  53. }
  54. </script>
  55. </body>
  56. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议