文档章节

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

phala
 phala
发布于 2016/04/13 18:03
字数 634
阅读 53
收藏 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
粉丝 5
博文 104
码字总数 53470
作品 0
成都
程序员
私信 提问
Chrome 插件开发,入门Demo

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

单红宇
2017/04/19
0
0
AES加密算法原理及其GO语言实现

  AES是作为DES的替代标准出现的,全称Advanced Encryption Standard,即:高级加密标准。AES加密算法,经历了公开的选拔,最终2000年,由比利时密码学家Joan Daemen和Vincent Rijmen设计的...

莫名2013
06/26
0
0
循序渐进学.Net Core Web Api开发系列【16】:应用安全续-加密与解密

系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一、概述 应用安全除了用户权限认证外,还要考虑到数据安全,传...

seabluescn
07/25
0
0
把ssl模块加入到已经编译好的apache中实现HTTPS

为了使Apache支持https访问,系统需要安有apache、openssl、mod_ssl.so 1、安装openssl: 基本上系统都已经安装了,在/usr/bin/openssl下,直接使用openssl命令即可;如果系统未安装,则下载...

WinHearts
08/31
0
0
VC++网络安全编程范例(12)-PKI编程

PKI(Public Key Infrastructure ) 即"公钥基础设施",是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系,简单来说,PKI...

junwong
2012/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小白创建一个spring boot项目

进入 https://start.spring.io/

lilugirl
36分钟前
0
0
Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源

背景 随着应用越来越复杂,依赖越来越多,日志系统越来越混乱,有时会出现一些奇怪的日志,比如: [] [] [] No credential found 那么怎样排查这些奇怪的日志从哪里打印出来的呢?因为搞不清...

hengyunabc
今天
1
0
home hosts

home hosts lwk@qwfys:~$ cat /etc/hosts127.0.0.1 localhost127.0.1.1 qwfys192.168.56.101vm600.qwfys.com39.108.212.91alpha1.ppy.com39.108.117.122alpha2.p......

qwfys
今天
1
0
大数据教程(6.1)hadoop生态圈介绍及就业前景

1. HADOOP背景介绍 1.1、什么是HADOOP 1.HADOOP是apache旗下的一套开源软件平台 2.HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.HADOOP的核心组...

em_aaron
今天
4
0
hadoop垃圾回收站

在生产生,hdfs回收站必须是开启的,一般设置为7天。 fs.trash.interval 为垃圾回收站保留时间,如果为0则禁用回收站功能。 fs.trash.checkpoint.interval 回收站检查点时间,一般设置为小于...

hnairdb
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部