前言
zepto是一个轻量级的类jQuery的JavaScript库,适合在移动端页面开发使用。轻量又提供许多dom操作API。
前面我们讲解了zepto模块和event模块,现在来看看ajax模块。
ajax模块
整体架构:
$.ajax()
$.ajax()是整个模块的核心,模块的其他函数方法一定程度都依赖于这个函数。
1 | $.ajax = function(options){ |
$.ajaxJSONP
一个包含Ajax请求的默认设置的对象。大部分的设置在 $.ajax中已经描述。以下设置为全局非常有用:
- timeout (默认: 0):对Ajax请求设置一个非零的值指定一个默认的超时时间,以毫秒为单位。
- global (默认: true):设置为false。以防止触发Ajax事件。
- xhr (默认:XMLHttpRequest factory):设置为一个函数,它返回XMLHttpRequest实例(或一个兼容的对象)
- accepts: 从服务器请求的MIME类型,指定dataType值:
- script: “text/javascript, application/javascript”
- json: “application/json”
- xml: “application/xml, text/xml”
- html: “text/html”
- text: “text/plain
1 | $.ajaxJSONP = function(options, deferred){ |
$.param()
序列化一个对象,在Ajax请求中提交的数据使用URL编码的查询字符串表示形式。如果shallow设置为true。嵌套对象不会被序列化,嵌套数组的值不会使用放括号在他们的key上。
如果任何对象的某个属性值是一个函数,而不是一个字符串,该函数将被调用并且返回值后才会被序列化。
1 | var escape = encodeURIComponent |
其实现思路比较简单,对value进行encodeURIComponent()处理,在调用serialize()键值和属性值拼接并push进数组。最后利用join和replace 连接形成字符串
1 | encodeURIComponent()是对统一资源标识符(URI)的组成部分进行编码的方法。 |