文档章节

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
成都
程序员
循序渐进学.Net Core Web Api开发系列【16】:应用安全续-加密与解密

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

seabluescn
07/25
0
0
AES加密算法原理及其GO语言实现

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

莫名2013
06/26
0
0
使用SSH密钥对给你的阿里云ECS加把安全锁

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

51干警网
05/24
0
0
数字证书,数字签名,https,ssl等安全概念的解释

讲这些概念之前,先讲讲非对称加密,与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进...

chaney
2014/05/28
0
0
VC++网络安全编程范例(12)-PKI编程

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

junwong
2012/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

spring 容器实现对bean的管理(注解方式解析,源码阅读)

因为最近在研究学习spring boot,所以这里想详细学习回顾了一下spring 容器对bean的一些管理方式和部分源码学习。 首先初始类AnnotationConfigApplicationContext,简单源码查看,支持两个参...

小海bug
11分钟前
0
0
数据结构:二分查找 java

二分查找的前提是有序存储,利用顺序存储和元素排序 /** * 二分查找,查找成功,返回下标记 * @param values * @param begin * @param end * @param key * @param <T> * @ret...

京一
29分钟前
0
0
@SpringBootApplication 注解

@SpringBootApplication注解是一个组合注解,包含以下注解 @Target(ElementType.TYPE) 注解的作用目标 @Retention(RetentionPolicy.RUNTIME) Reteniton的作用是定义被它所注解的注解保留多久,...

java.刘
42分钟前
0
0
sentinel自定义DataSource实战

序 本文主要研究一下如何自定义sentinel的DataSource,这里以jdbc为例。 maven <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-sen......

go4it
58分钟前
1
0
xgboost/gbdt在调参时为什么树的深度很少就能达到很高的精度?

问题: 用xgboost/gbdt在在调参的时候把树的最大深度调成6就有很高的精度了。但是用DecisionTree/RandomForest的时候需要把树的深度调到15或更高。用RandomForest所需要的树的深度和Decisio...

tantexian
59分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部