Write the Code. Change the World.

分类目录
7月 22

现象

在js中使用 $(window).load(function(){ ...}) 时,会报下边的错误:


Uncaught TypeError: a.indexOf is not a function at r.fn.init.r.fn.load (jquery.min.js:4)

stackoverflow 中有人提到说是 jquery 的版本原因,并给出了方法。

https://stackoverflow.com/questions/38871753/uncaught-typeerror-a-indexof-is-not-a-function-error-when-opening-new-foundat
继续阅读

7月 22

前言

网站加入加载进度条,是件很酷的事情。NProgress.js 就是一个不错的插件。

官网地址:http://ricostacruz.com/nprogress/

CDN: http://www.bootcdn.cn/nprogress/

使用

NProgress 依赖于 jquery1.8 以上的版本。所以,在使用之前,先引入jquery。NProgress有自己的样式文件,也要引入进来。所以,在使用之前,要引入对应的css, js。如:

<link href="//cdn.bootcss.com/nprogress/0.2.0/nprogress.min.css" rel="stylesheet">

<script src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>

<script src="//cdn.bootcss.com/nprogress/0.2.0/nprogress.min.js"></script>

继续阅读

7月 12

前因

当INPUT[type=file]控件上已经选择过一次文件之后,再次点击它选择同一个文件时change事件就不会触发。因为第二次选择后里面的文字和第一次是一样的,没有改变。还有个更蛋疼情况是有些浏览器会自动记住控件上的文字,即使页面关闭后重新打开还是会恢复到原来的文字。这时候选择同路径的文件也不会触发change事件。
继续阅读

7月 10

回调通知是指客户端在上传时指定服务端在处理完上传请求后,应该通知某个特定服务器,在该服务器确认接收了该回调后才将所有结果返回给客户端。

因为加入了回调请求和响应的过程,相比简单上传,使用回调通知机制一般会导致客户端花费更多的等待时间。

开发者可以要求七牛云存储在某文件上传完成后向特定的 URL 发起一个回调请求。七牛云存储会将该回调的响应内容作为文件上传响应的一部分一并返回给客户端。回调的流程如下:

image

继续阅读

7月 07

前边

业务流程:

客户端在上传资源到七牛云存储之前要先从业务服务器获取一个有效的上传凭证,因此需要先后和两个服务端打交道。


继续阅读

7月 05

前言

只做一件事情,可以做的很精致。验证码,只是一个网站很小很小的一部分,有人有公司却做的体验非常棒。下边是网易易盾和极验两加公司做的验证码产品demo的链接:

网易易盾: http://dun.163.com/trial/jigsaw
极验:http://www.geetest.com/exp.html

极验提供了两种验证方式(拖动和点击),四种展现形式(float、popup、custom、bind),二次验证的服务以及多平台。以保障良好的安全以及体验。不过,按钮不能任意定义高度。免费产品也不能自定义图片。
继续阅读

6月 30

现象

在给网址做 登录注册 功能时,通常会用到ajax。因为它不会刷新页面,给用户的体验很好。但会影响另外一个比较好的体验:浏览器不会弹出记住账号密码。

eg:


<div class="log-bodies"> <row> <span>账号</span> <input id="account" type="text" placeholder="请输入账号"> </row> <row> <span>密码</span> <input id="password" type="password" placeholder="请输入密码"> </row> <button class="log-btn">登录</button> </div $(".log-btn").click(function{ //do ajax post });

继续阅读

6月 28

js中实现set,get

方法1:

function Person()
{
    var name;

    Object.defineProperty(this, "name",{
        set:function(value){
            name = value;
        },
        get:function(){
            return name;
        }
    })
}

defineProperty 是ECMAScript 5新增的特性。该方法有局限性。ie需要大于8以上的版本才可以。

方法2:


var name; var Person = { set name(value){ name = value; }, get name(){ return name; } }