..


ลิงก์ผู้สนับสนุน

มีอะไรใหม่ใน jQuery 1.5

บทความที่เขียนโดย Riccardo Brambilla
หน้า 1 จาก 3

มันไม่กี่สัปดาห์ที่ออกมาจากรุ่น 1.5 ของ jQuery ที่รักของเราตามด้วยการกลับมาของการโพสต์ 1.5.1, พื้นเป็นรุ่นที่ผิดพลาดคงที่ในครั้งแรก

สัญชาตญาณแรกของฉันทำให้ฉันคิดว่าคุณสามารถรอเวลาในการปั่นออกตัวใหม่นี้ถ้าเพียงเพราะสาขา 1.4.x ดำเนินการอยู่แล้วในงานของพวกเขาได้เป็นอย่างดีไม่พูดถึงว่ายังคงมีเวลาน้อยเพิ่มเติมเกี่ยวกับ รุ่นที่ช่วยให้ผู้ใช้รู้สึกของความมั่นคงและการรักษาความปลอดภัย

แต่เมื่อผมอ่านสิ่งที่มีการเปลี่ยนแปลงและเพิ่มฉันเปลี่ยนใจทันที

การเปลี่ยนแปลงใน 1.5 จะมีมากมาย แต่ไม่มากในคุณลักษณะที่มีการสัมผัสกับวิธีการทำงานมากได้รับการทำอยู่เบื้องหลังโดยเฉพาะอย่างยิ่งในแบบฟอร์มการ Ajax นักพัฒนาที่มีการเปลี่ยนแปลงไม่ลังเลที่จะโทรที่สมัยไม่มากในทั่วไป (สิ่งที่กรอบอื่น ๆ ใช้งานอยู่แล้ว ที่นี่เราแนะนำในขณะนี้) แต่สำหรับ jQuery

เราเห็นน้อยมากโดยเฉพาะสิ่งที่ได้รับการทำ

ปฏิวัติ (และ refactoring) ของฟอร์ม Ajax

$ ขยาย. ajax ()

ทีมพัฒนากรอบการทำงานที่มีการเขียนมากที่สุดของ Ajax API ให้สามวิธีในการขยายการทำงานของ $ Ajax () :. prefilters แปลงและการขนส่ง

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 () {



        



 / * ยกเลิกรหัส * /



      



 }



    



 };



  



 }







 });



และคำอธิบายของพารามิเตอร์ที่แปลเพื่อความสะดวกของคุณ :

  1. ตัวเลือกเป็นตัวเลือกของการร้องขอ
  2. ตัวเลือก originalOptions จะถูกส่งผ่านไปวิธีการเช่นเดียวกับ Ajax, modiifcate ไม่ได้กำหนดไว้โดยค่าเริ่มต้นและไม่มี ajaxSettings
  3. jqXHR jqXHR เป็นเรื่องของการร้องขอ
  4. ส่วนหัวและแผนที่ค่าคีย์ / ของคำขอที่สามารถส่งได้ถ้าการขนส่งสนับสนุน
  5. completeCallback เป็นฟังก์ชันที่แจ้งให้เสร็จสิ้นการขอ ajax ที่

โครงสร้างทั่วไปของ completeCallback เป็นดังนี้

 



 ฟังก์ชัน (สถานะ statusText, การตอบสนองของส่วนหัว) {}

 
ที่ :
  1. สถานะเป็นรหัสสถานะ HTTP ของการตอบสนอง, คลาสสิก 200, 404 ...
  2. statusText เป็นรายละเอียดของการตอบสนองของ
  3. การตอบสนองเป็นแผนที่ตัวเลือกที่กำหนดค่าประเภทข้อมูล / ที่มีคำตอบในทุกรูปแบบได้รับการยอมรับโดยการขนส่ง : ตัวอย่างเช่นการตอบสนองในข้อความธรรมดา : {ข้อความ : textData}
  4. ส่วนหัวเป็นสตริงตัวเลือกที่มีการตอบสนองโดย XMLHttpRequest.getAllResponseHeaders หัว (The)

เราได้อธิบายสิ่งที่ได้รับการเพิ่มเพื่อเพิ่มความยืดหยุ่นของโมดูล Ajax แต่สำหรับการใช้งานทั่วไปที่ผมพบว่ามันแสดงความคิดเห็นน่าสนใจมากในการแนะนำของรอการตัดบัญชี แต่ก่อนที่จะทำเช่นนั้น jqXHR กำหนดวัตถุใหม่ที่ส่งคืนจากการเรียก Ajax

jqXHR

ครอบครัว jqXHR เป็น superset ของวัตถุ XMLHttpRequest ที่ดำเนินการสัญญาการเชื่อมต่อโดยการให้วิธีการทั้งหมดที่คุณสมบัติและพฤติกรรมที่กำหนดโดยสัญญาที่ :

ความหมาย : สัญญาเป็นมุมมองที่อ่านอย่างเดียวจากผลของงานและแสดงถึงค่าที่ส่งกลับโดยเสร็จสิ้นการทำธุรกรรมที่

สำหรับข้อมูลเพิ่มเติมดู ที่นี่ .

ในประเภทเดียวกัน ...
E - Learning
CSS (หลักสูตร) CSS (หลักสูตร)
การออกแบบเว็บและการใช้งานตาม W3C CSS และ XHTML เริ่มต้นจาก 29 €
HTML (หลักสูตร) HTML (หลักสูตร)
ภาษามาร์คอัปสำหรับเว็บจาก 29 €
Javascript (หลักสูตร) Javascript (หลักสูตร)
คู่มือที่สมบูรณ์ในการเขียนสคริปต์ฝั่งไคลเอนต์ จาก 39 €
ลิงก์ผู้สนับสนุน