文档章节

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

phala
 phala
发布于 2016/04/13 18:03
字数 634
阅读 54
收藏 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
四款超棒的 jQuery 数字化签名插件

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

gbin1
2014/07/17
11.7K
13
linux/Windows系统如何安装PHP-openssl扩展

现在很多的smtp服务器是需要ssl方式加密的,而支持ssl需要php加载openssl扩展。所以本文我们将和大家一起分享如何在linux/Windows系统下安装PHP的openssl扩展。 关于openssl OpenSSL是一个安...

丶八戒丶
2017/09/27
113
0
使用SSH密钥对给你的阿里云ECS加把安全锁

先说一下:什么是 SSH 密钥对 SSH 密钥对,常简称为密钥对,是阿里云为您提供的新的远程登录 ECS 实例的认证方式,是一种区别于传统的用户名加密码模式的认证方式。 SSH 密钥对通过加密算法生...

51干警网
2018/05/24
0
0
github如何设置SSH Key实现无密码操作

一、密钥是什么?    密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥。对称密钥加密又称私钥加密或会话密钥加密算法;非对称密...

懿左左
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

string类回顾

writeademo
4分钟前
0
0
在DataWorks中实现指定UDF只能被指定账户访问

在DataWorks中实现指定资源被指定账户访问 背景 之前写过一篇文章是关于“DataWorks和MaxCompute内部权限体系的区别”有兴趣的朋友可以点击阅读查看详情。但是还是有些同学会问,我如何在Dat...

阿里云云栖社区
5分钟前
0
0
MaxCompute安全管理指南-案例篇

通过《MaxCompute安全管理-基础篇》了解到MaxCompute和DataWorks的相关安全模型、两个产品安全方面的关联,以及各种安全操作后,本篇主要给出一些安全管理案例,给安全管理的成员作为参考。 ...

阿里云官方博客
8分钟前
0
0
Spring Cloud 中使用Feign解决参数注解无法继承的问题

Spring Cloud 中使用Feign解决参数注解无法继承的问题 在使用Feign的时候,通常先写一个接口类,然后再写实现类,根据官网的例子接下来编写一个简单的Feign的请求例子 @FeignClient("spring...

不学无数的程序员
9分钟前
0
0
springboot kafka读写

依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>1.1.1.RELEASE</version></dependency> 配置 #=======......

张欢19933
16分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部