jquery 3.1.1
1.引入jquery 3.1.1
2.引入<script src="dist/application.min.js"></script>
app.settings({
api: {
location: "http://xxx.xxx.xxx/", //设置api服务器地址
version: 'v1', //设置api版本
versionSendType: 'url', //版本号的发送方式,可能的值 url、headers、param,默认为 url
},
isChangeURL: false //是否开启url自动变更,此选项仅在 server中允许时可以被设置为true
});
api請求分為兩種
發送get請求
app.api.get('接口名称', 回调函数);
如
app.api.get('user/get_name', {name: 'testname'}, function(data){
//todo 接口请求成功后的后续操作
});
如上代碼將發送以下請求
Request URL:http://xxx.xxx.xxx/v1/user/get_name?name=testname
Request Method:GET
Host:xxx.xxx.xxx
發送post請求
app.api.post(接口名称, 参数, 回调函数);
如
app.api.post('user/set_name', {name: 'testname'}, function(){
//todo 接口请求成功后的后续操作
});
如上代碼將發送以下請求
Request URL:http://xxx.xxx.xxx/v1/user/get_name
Request Method:POST
Host:xxx.xxx.xxx
Form Data:
name:testname
如果 `versionSendType` 设置为 `param`
則
get時候Request URL:http://xxx.xxx.xxx/user/get_name?version=v1
post時候
Form Data:
version:v1
如果 `versionSendType` 设置为 `header`
則會在發送請求時在Request Headers
中增加一個Api-Version
的參數此種情況,需要伺服器在Response Headers
中的Access-Control-Allow-Headers
參數中增加Api-Version
或直接設定為*
自動載入包含html、css、js。自動載入預設使用的還是<a>
標籤,但對<a>
標籤的機制進行了調整,點擊<a>
標籤不再是同步頁面跳轉,而是自動進行非同步頁面加載
成功載入html或全部css後會自動觸發window的resize事件
對<a>
標籤進行了屬性擴展,現增加屬性如下
app
此處必需填寫,但無需填寫值。無此屬性的a
標籤仍採用同步跳轉機制
href
需要非同步載入的html檔案位址
container
容器id,將會把非同步載入的內容渲染到指定的容器中
css
需要非同步載入的css檔案位址
js
需要異步載入的js檔案位址
data-obj
需要誇張頁面傳輸的數據
使用範例
<a
app
container="content"
href="register.html"
css="register.css"
js="register.js"
data-obj='{"user_id": 111}'
>这是一个超连接</a>
一定要注意, data-obj
的單雙引號的運用
多css自動載入css="css1.css|css2.css|css3.css"
多js自動載入js="js1.js|js2.js|js3.js"
為了避免命名衝突的問題,本js提供了註冊命名空間的方法
//假設目前js所在的位置為js/a/test.js
app.namespace.register('js.a.test');
即可
之後則可以直接使用js.a.test
例如
js.a.test.alert = function(msg){
alert("^_^" + msg + "^_^");
}
js.a.test.isShow = true;
……
對於非同步引入的js文件,會自動運行內部的建構函數
*為了免各個js檔案產生命名衝突,建議每個js檔案都要閉包或各個變數、函數均使用命名空間
如
//假设当前js文件的文件名是 'js/a/brand.js'
app.namespace.register('js.a.brand'); //注册命名空间
(function(w){
// 构造函数
js.a.brand = function(){
//todo 需要初始化的逻辑
}
// todo 其它的代码逻辑
}(window));
直接呼叫app.back();
即可
MIT
Copyright (c) 2017 writethesky(撰天)