文档章节

jquery实现下拉加载(附php数字签名规则

phala
 phala
发布于 2016/04/13 18:03
字数 634
阅读 144
收藏 11

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

    //drop autoload
    var page = 1,tmp;
    var totalPage = $(".page a").length-2;
    //Prevent multiple nextPage() calls
    var stop = false;
    $(window).scroll(function () {
        var scrollTop = $(this).scrollTop();
        var scrollHeight = $(document).height();
        var windowHeight = $(this).height();
        if (scrollTop + windowHeight >= scrollHeight) {
            if(stop==false){ 
                page++;
                if (page <= totalPage) {
                    stop=true;
                    nextPage(page);
                }
            }
        }
    });
 
    function nextPage(page){
        $.ajax({
        type: 'get',
        url: window.location+"&page="+page,
        beforeSend:function(){$("ul").append('<p class="load padding5">loading...</p>')}, 
        success:function(data){
            $("p.load").remove();
            var start = data.indexOf('<ul class="goods-list-1 pad-right-2">');
            var end = data.indexOf('</ul>',start)+5;
            var add = data.substring(start,end);
            $(add).each(function(){
                $("ul").append($(this).html());
            });
            stop = false;
        }
        });
    }

|workflow

1.获取页面滚动事件

可以直接$(window).scroll()来获取。也可以用bind绑定scroll动作:

$(function(){ 
    $(window).bind('scroll',function(){}); 
}
2.判断滚动范围是否超出屏幕底部

即滚动条位置+窗口高度 >= 文档高度,则加载下一页内容:

if ($(this).scrollTop() + $(this).height() >= $(document).height()) {}

scrollTop() 方法返回或设置匹配元素的滚动条的垂直位置。

3.$.ajax({ })获取下一页内容再append到页面中

因为后台返回的是一个完整的html页面,所以用indexOf+substring截取需要的ul列表,最后再append。

注意还需要设置一个flag来防止scroll的多次触发,默认为false,当ajax success执行完后再赋值true。


|签名规则

做api测试时需要生成signature,假设request是user_id 、oder_id、sign

然后user_id有唯一的key对应

用表单提交会得到一个数组

$arr(
    'user_id'     => 22,
    'order_id'    => 58,
    'key'         =>asdf
)

下面进行签名的生成

$key =$arr['key']
unset($arr['key']); 
$arr = ksort($arr);//数组按照键名排序
$str = json::encode($arr);
$str.=$key;
$sign = md5($str);

其实做的时候也不是很清楚签名的作用,所以去学习了一下。

安全之道:加密与数字签名

【数据加密】用公钥加密,防篡改

只有用私钥解密,因为私钥只有自己有,所以保证了数据不能被别人看到


【签名】私钥加密,防泄漏

只能用公钥解密,任何人都可以用公钥验证。因为私钥只有自己有,所以它可以保证数据只能是自己发出的,不可能有别人发出,除非私钥丢失或被第三方破解出来

这样也大概理解

【签名】客户端A,签名表示这个请求是A发起的,而只要有公钥的服务器就可以查看A的签名从而验证客户端。

【加密】服务端希望数据只能被A客户端看到,所以加密了数据,并且数据只能被A的私钥解密。


© 著作权归作者所有

phala
粉丝 6
博文 104
码字总数 53470
作品 0
成都
程序员
私信 提问
加载中

评论(0)

Chrome 插件开发,入门Demo

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/catoop/article/details/70246058 1、Chrome扩展文件 Chrome扩展文件以.crx为后缀名,在Google Chrome扩展官方...

单红宇
2017/04/19
0
0
flatpickr 4.6.3 发布,轻量级 JS 日期选择器

flatpickr 4.6.3 发布了,更新内容如下: 修复 #1841 monthSelectPlugin 和 maxDate 或 minDate #1805 最右边的位置不正确 #1754 时间选择器的小时或分钟不会自动更新 #1887 使用 altInput 中...

xplanet
2019/09/29
1.5K
0
四款超棒的 jQuery 数字化签名插件

在浏览器中,我们有很多方式来绘制生成签名效果,并且有很多很棒很智能的jQuery插件。数字化签名是未来的发展方向,正是这个原因我们这里收集并且推荐了四款超棒的jQuery数字化签名插件,希望...

gbin1
2014/07/17
1.2W
13
python爬虫破解带有CryptoJS的aes加密的反爬机制

发现问题 在一次偶然中,在爬取某个公开网站(非商业型网站)时,老方法,打开调试工具查看请求方式,请求拦截,是否是异步加载,不亦乐乎,当我以为这个网站非常简单的时候,发现二级网页的...

osc_op3x65ho
01/18
8
0
linux升级openssl和php_openssl模块

linux升级openssl和php_openssl模块 时间2014-04-09 12:23:35markdream原文http://www.markdream.com/server/linux-update-openssl.shtml OpenSSL源码升级 2014年4月8日,XP宣布正式停止服务......

tsf7758
2014/04/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

基于Centos7系统一键部署EFK服务

最近平台EFK版本均作了升级,平台采用EFK(ElasticSearch-7.6.2 + FileBeat-7.6.2 + Kibana-7.6.2)架构。这里建议三个组件主次版本保持一致。考虑到服务器比较多,所以写成脚本来批量部署。 ...

linuxprobe2020
今天
23
0
检查键是否存在于JavaScript对象中? - Checking if a key exists in a JavaScript object?

问题: How do I check if a particular key exists in a JavaScript object or array? 如何检查JavaScript对象或数组中是否存在特定键? If a key doesn't exist, and I try to access it, ......

fyin1314
今天
27
0
jasypt-spring-boot提示Failed to bind properties

1 问题描述 在Spring Boot中使用jasypt-spring-boot进行加密,但是提示: Description:Failed to bind properties under 'spring.datasource.password' to java.lang.String: Reason:......

氷泠
今天
29
0
在git 2.13之前,只保存多个已更改的文件中的一个文件

问题: 如何在我的分支上只隐藏多个已更改文件中的一个? 解决方案: 参考一: https://stackoom.com/question/Cl3h/在git-之前-只保存多个已更改的文件中的一个文件 参考二: https://oldb...

技术盛宴
今天
30
0
SQL笔记:把Excel的数据导入MySQL中作运算

很多Excel用户都知道,Excel单个工作簿单张表存储的数据量很有限(旧版本月60多万条记录,新版本也才104万条不到),而且Excel中,因为自带各种格式与公式,兼之高度封装性等原因,导致Excel...

tengyulong
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部