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 إلى نوعين
إرسال طلب الحصول على
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
إرسال طلب النشر
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`
لكن
Request URL:http://xxx.xxx.xxx/user/get_name?version=v1
وقت النشر
Form Data:
version:v1
如果 `versionSendType` 设置为 `header`
ستتم إضافة معلمة Api-Version
إلى Request Headers
عند إرسال الطلب، في هذه الحالة، يحتاج الخادم إلى إضافة Api-Version
إلى معلمة Access-Control-Allow-Headers
في Response Headers
أو تعيينها مباشرةً على *
يتضمن التحميل التلقائي html وcss وjs. لا يزال التحميل التلقائي يستخدم العلامة <a>
بشكل افتراضي، ولكن تم تعديل آلية العلامة <a>
ولم يعد النقر فوق العلامة <a>
ينتقل بشكل متزامن، ولكنه يقوم تلقائيًا بتحميل الصفحة بشكل غير متزامن.
بعد تحميل HTML أو CSS بنجاح، سيتم تشغيل حدث تغيير حجم النافذة تلقائيًا.
تم توسيع العلامة <a>
بالسمات، ويتم الآن إضافة السمات على النحو التالي:
app
مطلوب هنا، ولكن ليست هناك حاجة لملء القيمة. لا تزال a
التي لا تحتوي على هذه السمة تستخدم آلية الانتقال المتزامن
يجب تحميل href
بشكل غير متزامن بعنوان ملف HTML
سيعرض معرف حاوية container
المحتوى الذي تم تحميله بشكل غير متزامن في الحاوية المحددة.
عنوان ملف CSS css
يجب تحميله بشكل غير متزامن
عنوان ملف 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();
مباشرة
معهد ماساتشوستس للتكنولوجيا
حقوق الطبع والنشر (ج) 2017 Writethesky(书天)