..
มันไม่กี่สัปดาห์ที่ออกมาจากรุ่น 1.5 ของ jQuery ที่รักของเราตามด้วยการกลับมาของการโพสต์ 1.5.1, พื้นเป็นรุ่นที่ผิดพลาดคงที่ในครั้งแรก
สัญชาตญาณแรกของฉันทำให้ฉันคิดว่าคุณสามารถรอเวลาในการปั่นออกตัวใหม่นี้ถ้าเพียงเพราะสาขา 1.4.x ดำเนินการอยู่แล้วในงานของพวกเขาได้เป็นอย่างดีไม่พูดถึงว่ายังคงมีเวลาน้อยเพิ่มเติมเกี่ยวกับ รุ่นที่ช่วยให้ผู้ใช้รู้สึกของความมั่นคงและการรักษาความปลอดภัย
แต่เมื่อผมอ่านสิ่งที่มีการเปลี่ยนแปลงและเพิ่มฉันเปลี่ยนใจทันที
การเปลี่ยนแปลงใน 1.5 จะมีมากมาย แต่ไม่มากในคุณลักษณะที่มีการสัมผัสกับวิธีการทำงานมากได้รับการทำอยู่เบื้องหลังโดยเฉพาะอย่างยิ่งในแบบฟอร์มการ Ajax นักพัฒนาที่มีการเปลี่ยนแปลงไม่ลังเลที่จะโทรที่สมัยไม่มากในทั่วไป (สิ่งที่กรอบอื่น ๆ ใช้งานอยู่แล้ว ที่นี่เราแนะนำในขณะนี้) แต่สำหรับ jQuery
เราเห็นน้อยมากโดยเฉพาะสิ่งที่ได้รับการทำ
ทีมพัฒนากรอบการทำงานที่มีการเขียนมากที่สุดของ Ajax API ให้สามวิธีในการขยายการทำงานของ $ Ajax () :. prefilters แปลงและการขนส่ง
prefilter เป็นฟังก์ชันโทรกลับที่เรียกว่าก่อนที่จะขอ ajax จะถูกส่งจริงและตามที่อธิบายไว้ในเอกสารนี้ก่อนที่จะเลือกในการรักษาโดย $. ajax () ตัวเอง
prefilter จะถูกบันทึกโดยใช้ $ AjaxPrefilter ().
$. ฟังก์ชั่น AjaxPrefilter ((ตัวเลือก originalOptions, jqXHR)
ฉันจะอธิบายสิ่ง jqXHR ที่คิดว่ามันเป็น wrapper สำหรับตอนนี้อุดมไปด้วย XMLHttpRequest
ตัวอย่างที่น่าสนใจที่สุดในเอกสารที่อธิบายการใช้งานที่เป็นไปได้ของการปรับเปลี่ยน prefilters เป็นตัวเลือกที่มีอยู่
$. ฟังก์ชั่น AjaxPrefilter ((ตัวเลือก) {
ถ้า (options.crossDomain) {
options.url ="http://miodominio.it/proxy/"+ encodeURIComponent (options.url);
options.crossDomain = false;
}
});
ที่จะพูดว่าถ้าตัวเลือกที่เป็น crossDomain โทรถูก proxied ไป http://mydomain.net/proxy/ URL ที่
และเป็นไปได้'เพื่อใช้ $ AjaxSetup () เพื่อลงทะเบียนทั่วโลก.
$. AjaxSetup ({
แปลง : {
"ข้อความ Miodatatype": ฟังก์ชัน (textValue) {
(ถ้าถูกต้อง (textValue)) {
/ / นี่คือตรรกะที่กำหนดเองเพื่อแยก!
miodatatypeValue กลับ;
else {}
/ / แจ้งให้แยกข้อผิดพลาด
โยนยกเว้น;
}
}
}
});
หรือโทรโดยตรงในบรรทัดสำหรับการโทรที่ต้องการให้แต่ละ :
$. Ajax (URL, {
datatype :"xml ที่ข้อความ miodatatype"
แปลง : {
"ข้อความ XML": ฟังก์ชัน (xmlValue) {
/ / แยกตรรกะที่นี่!
textValue กลับ;
}
}
});
เหตุผลที่เหมาะสมที่สุดที่จะใช้ตัวแปลงก็คือว่ามันมีวิธีการกำหนดประเภทข้อมูลของคุณเองแล้วใช้เป็นชนิดกลับเป็นตัวอย่างแรกที่เราสามารถขอ miodatatype ประเภทนี้ :
$. Ajax (URL, {
datatype :"miodatatype"
});
หมายเหตุ : ชนิดข้อมูลจะต้องกำหนดเป็นสตริงตัวพิมพ์เล็ก
หากมีเพียงพอที่จะแปลง prefilters ที่ถูกและสำหรับการสร้างรูปร่างการ Ajax request ของเราวัตถุที่จะทำการขนส่งใช้ได้ว่าเอกสารที่กำหนดสุดท้าย (ซึ่งจะแปลว่า"ไม่ใช้"หรือ"ถ้าคุณรู้สึกว่าถูกบังคับให้ใช้พวกเขาบางทีคุณควรสะท้อนให้เห็นใน ตรรกะที่คุณกำลังใช้")
อย่างไรก็ตามการขนส่งให้สองหน้าที่ :. ส่งและยกเลิกและควรจะบันทึกโดยใช้ $ AjaxTransport ()
นี่เป็นตัวอย่างพื้นฐานที่ระบุไว้ในเอกสารคือ
$. ฟังก์ชั่น AjaxTransport ((ตัวเลือก originalOptions, jqXHR) {
(transportCanHandleRequest / * * /) ถ้า {
{กลับ
ส่ง : ฟังก์ชัน (หัว completeCallback) {
/ * ส่ง * คิว /
}
ยกเลิก : function () {
/ * ยกเลิกรหัส * /
}
};
}
});
และคำอธิบายของพารามิเตอร์ที่แปลเพื่อความสะดวกของคุณ :
โครงสร้างทั่วไปของ completeCallback เป็นดังนี้
ฟังก์ชัน (สถานะ statusText, การตอบสนองของส่วนหัว) {}
ที่ :
เราได้อธิบายสิ่งที่ได้รับการเพิ่มเพื่อเพิ่มความยืดหยุ่นของโมดูล Ajax แต่สำหรับการใช้งานทั่วไปที่ผมพบว่ามันแสดงความคิดเห็นน่าสนใจมากในการแนะนำของรอการตัดบัญชี แต่ก่อนที่จะทำเช่นนั้น jqXHR กำหนดวัตถุใหม่ที่ส่งคืนจากการเรียก Ajax
ครอบครัว jqXHR เป็น superset ของวัตถุ XMLHttpRequest ที่ดำเนินการสัญญาการเชื่อมต่อโดยการให้วิธีการทั้งหมดที่คุณสมบัติและพฤติกรรมที่กำหนดโดยสัญญาที่ :
ความหมาย : สัญญาเป็นมุมมองที่อ่านอย่างเดียวจากผลของงานและแสดงถึงค่าที่ส่งกลับโดยเสร็จสิ้นการทำธุรกรรมที่
สำหรับข้อมูลเพิ่มเติมดู ที่นี่ .
| |
CSS (หลักสูตร)
การออกแบบเว็บและการใช้งานตาม W3C CSS และ XHTML เริ่มต้นจาก 29 € |
| |
HTML (หลักสูตร)
ภาษามาร์คอัปสำหรับเว็บจาก 29 € |
| |
Javascript (หลักสูตร)
คู่มือที่สมบูรณ์ในการเขียนสคริปต์ฝั่งไคลเอนต์ จาก 39 € |