浏览器滚动加载技术实现方案

简介: 2014年6月3日 09:24:03 先占个位,随后补上,免得我忘了 ;) 2014年6月18日 09:47:06 ajax用到了jquery,需要引用 1 2 3 4 5 6 正在加载 7 已加载完 ...

2014年6月3日 09:24:03

先占个位,随后补上,免得我忘了 ;)

2014年6月18日 09:47:06

ajax用到了jquery,需要引用

 1 <body>
 2     <div class="list-box clearfix" id="list-box" currentpage="1">
 3         <!-- 动态内容 -->
 4     </div>
 5 
 6     <div class="load" style="display:none;font-size:14px;text-align:center">正在加载</div>
 7     <div class="end" style="dispaly:none;font-size:14px;text-align:center">已加载完</div>
 8 
 9 <script>
10     function insertcode() 
11     {
12         var targetdiv = document.getElementById('list-box');
13         var curpage = targetdiv.getAttribute('currentpage');
14         if (curpage == '0') {
15             curpage = 1;
16         };
17         var ajax_url = 'url/to/get/ajax/info'+curpage;
18         //ajax 请求
19         $.get(ajax_url, function(data) {
20             if (data != false) {
21                 var jsonInfo = '('+data+')'; //关联数组json后传递给js需要两边加上圆括号转换
22                 var objInfo = eval(jsonInfo); //将PHP返回的json,转换为js的对象
23                 var arrInfo = objInfo.game; //抽出返回的主要数据项
24                 targetdiv.setAttribute('currentpage', objInfo.next_start);//记录下次发起ajax请求时从哪条记录开始,此处由PHP端返回
25 
26                 var intLength = arrInfo.length;                                     
27                 for (var i = 0; i < intLength; i++) {
28                     var divTemplate = '<div style="height:50px;width=50px;background-color:#cccccc"> '+ arrInfo[i].id +'- '+ arrInfo[i].name +'-'+ arrInfo[i].content +'</div>';
29                     $('.list-box').append(divGameTemplate); //填充
30                 };
31 
32                 $(".load").hide();
33             } else {
34                 $(".end").show();
35                 return;
36             }
37         });  
38     };
39     insertcode();
40     $(document).ready(function () {
41         $(window).scroll(function () {
42             //判断窗体高度与竖向滚动位移大小相加 是否 超过内容页高度
43             //不提前加载,保证页面footer可能出现的友情链接等也能随时被点击到
44             if (($(window).height() + $(window).scrollTop()) >= $(document).height()) {
45                 $(".load").show();
46                 insertcode();
47             }
48         });
49     });
50 </script>
51 </body>

注意: 

1, 需要填充的html代码没有用createElement一个个的生成,而是使用一个"模版",和jquey的append整体去填充

2, PHP返回的数据是json过的array,如果这个array是一个关联数组,在eval的时候需要两边拼接上圆括号

-------------

js for循环对象:

//一维数组

for (x in data)
{
  txt = data[x];
}

//二维数组

for (x in person)
{
  txt = data[x].key;
}

 

目录
相关文章
|
Rust JavaScript 前端开发
WebAssembly 技术:解锁浏览器的无限潜能
随着互联网的快速发展,Web 应用程序的功能需求也越来越复杂。传统的 JavaScript 语言在处理大规模数据和高性能计算方面存在一些局限性。然而,WebAssembly 技术的出现改变了这一切。本文将介绍什么是 WebAssembly,它的应用领域以及如何使用它来提升 Web 应用程序的性能和体验。
|
存储 SQL JavaScript
聊一聊常见的浏览器数据存储方案(上)
聊一聊常见的浏览器数据存储方案(上)
637 0
|
11月前
|
数据采集 Web App开发 监控
如何用Pyppeteer打造高并发无头浏览器采集方案
本文从电商行业数据采集痛点出发,结合 Pyppeteer 高并发无头浏览器技术,打造可配置代理的高效采集方案。通过爬虫代理突破 IP 限制,模拟真实用户行为,实现 Amazon 特价商品数据的稳定抓取与分析。代码示例详细展示了代理集成、并发控制及数据处理流程,实验验证效率提升超 4 倍。该方案助力商业决策、竞品分析,并支持技术扩展与创新应用。
382 13
如何用Pyppeteer打造高并发无头浏览器采集方案
|
10月前
|
数据采集 Web App开发 JavaScript
无头浏览器技术:Python爬虫如何精准模拟搜索点击
无头浏览器技术:Python爬虫如何精准模拟搜索点击
|
缓存 监控 前端开发
在资源加载优化中,如何利用浏览器缓存提升性能?
通过以上这些方法,可以有效地利用浏览器缓存来提升资源加载的性能,减少网络请求次数,提高用户体验和应用的响应速度。同时,需要根据具体的应用场景和资源特点进行灵活调整和优化,以达到最佳的效果。此外,随着技术的不断发展和变化,还需要持续关注和学习新的缓存优化方法和策略。
634 159
|
数据采集 存储 运维
无头浏览器与请求签名技术
本文分享了在面对Cloudflare防护(如Amazon网站)时,如何通过无头浏览器、请求签名技术和爬虫代理IP实现数据采集的故障排查与改进方案。首先,介绍了从常规请求失败到引入Selenium无头浏览器的过程,解决了Cookie和User-Agent检测问题。接着,通过生成请求签名绕过二次验证,并利用代理IP规避访问风险。最后,提出了架构改进方案,包括无头浏览器集群化、签名算法优化、代理池管理和多层次容错机制,以提高系统的稳定性和扩展性。示例代码展示了如何设置代理、获取Cookie并生成签名,成功采集商品信息。
349 6
无头浏览器与请求签名技术
|
数据采集 消息中间件 JavaScript
浏览器渲染揭秘:从加载到显示的全过程;浏览器工作原理与详细流程
了解浏览器工作原理与流程,能有效帮助前端开发与性能优化。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
Web App开发 XML 开发框架
技术心得记录:在IE浏览器中的奇怪页面表现
技术心得记录:在IE浏览器中的奇怪页面表现
298 0
|
存储 前端开发 JavaScript
聊一聊常见的浏览器数据存储方案(下)
聊一聊常见的浏览器数据存储方案(下)
444 0
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
1260 1