โดโจทูลคิต
บทความนี้ยังต้องการเพิ่มแหล่งอ้างอิงเพื่อพิสูจน์ความถูกต้อง |
นักพัฒนา | Dojo Foundation |
---|---|
วันที่เปิดตัว | [[ข้อผิดพลาดนิพจน์: "{" เป็นอักขระเครื่องหมายวรรคตอนที่ไม่รู้จัก มีนาคม]] พ.ศ. 2548[1] |
รุ่นเสถียร | |
ที่เก็บข้อมูล | Dojo Toolkit 1.x https://github.com/dojo/dojo Dojo Framework 2+ https://github.com/dojo/framework |
ภาษาที่เขียน | Dojo Tookit 1.x: JavaScript, Dojo >= 2.x: TypeScript [3] |
ระบบปฏิบัติการ | ข้ามแพลตฟอร์ม |
ประเภท | JavaScript toolkit (or library) |
สัญญาอนุญาต | The modified BSD license หรือ the Academic Free License (≥ 2.1)[4] |
เว็บไซต์ | https://dojotoolkit.org, https://dojo.io/ |
โดโจทูลคิต (อังกฤษ: Dojo Toolkit เขียนตามสไตล์เป็น dōjō toolkit) เป็น โอเพนซอร์ส DHTML ทูลคิท ที่เขียนด้วยจาวาสคริปต์ ช่วยในการพัฒนาเอแจ็กซ์ในเว็บแอปพลิเคชัน ริเริ่มโดย อเล็กซ์ รัสเสล (Alex Russell) ใน พ.ศ. 2547[1] ภายใต้การดูแลของมูลนิธิโดโจ (Dojo Foundation) มีสัญญาอนุญาต 2 แบบให้เลือกใช้ ได้แก่ สัญญาอนุญาต BSD และ สัญญาอนุญาต Academic Free[4] มูลนิธิโดโจเป็นองค์กรไม่แสวงหาผลประโยชน์มีวัตถุประสงค์เพื่อส่งเสริมการนำทูลคิทนี้ไปใช้งาน
ความสามารถ
[แก้]เครื่องมือในหน้าเว็บเพจ (Widgets)
[แก้]Dojo widgets เป็นเครื่องมือต่างๆในหน้าเว็บเพจ เขียนเป็นโค้ดสำเร็จรูปโดยใช้ JavaScript, HTML และ CSS สนับสนุนการทำงานบนหลายเบราว์เซอร์ที่แพร่หลายในปัจจุบัน ช่วยให้เว็บเพจตอบโต้กับผู้ใช้ได้น่าสนใจ และพัฒนาง่ายขึ้น ตัวอย่างของเครื่องมือใน Dojo widgets เช่น
- Menu, Tab และ Tooltips
- ตารางปรับการเรียงลำดับใหม่ได้, แผนภาพแบบไดนามิก และ ตัวช่วยในการสร้างภาพเวกเตอร์
- การทำ Effects ต่างๆ เช่น fades, wipes และ slides, และตัวช่วยในการสร้าง effects แบบต่างๆ
- Tree ที่สนับสนุนการ drag-n-drop
- แบบฟอร์ม และ ฟังก์ชันในการตรวจสอบความถูกต้องของแบบฟอร์ม
- Date selector, Time selector ในรูปของปฏิทิน และ นาฬิกา
- Rich Text Editor
การสื่อสารแบบไม่ต่อเนื่อง (Asynchronous communication)
[แก้]หนึ่งในความสามารถหลักของ เอแจ็กซ์ แอปพลิเคชัน คือ การสื่อสารแบบไม่ต่อเนื่อง (Asynchronous communication) ของ เบราว์เซอร์ กับทางฝั่งเซิร์ฟเวอร์ กล่าวคือ สามารถส่งถ่ายและแสดงผลข้อมูลไปพร้อมๆกันโดยไม่ต้องรีโหลดทั้งหน้าใหม่หมด. ปกติแล้วการทำเช่นนี้จะต้องเรียกใช้ XMLHttpRequest ใน JavaScript ซึ่งในแต่ละเบราว์เซอร์ จะมีวิธีการเรียกใช้ที่แตกต่างกันอยู่เล็กน้อย. Dojo นำการจัดการพื้นฐาน เรื่องเกี่ยวกับข้อผิดพลาด, ปัญหาการใช้งานเกี่ยวกับปุ่ม "ย้อนกลับ", ปัญหาในการคั่นหน้า (Bookmark) และความแตกต่างระหว่างเบราว์เซอร์ ของการเรียกใช้ XMLHttpRequest รวมให้เรียกผ่าน dojo.io.bind เหมือนกันทั้งหมดแทน ซึ่งสามารถปรับให้ใช้วิธีอื่นนอกจาก XMLHttpRequest ได้ด้วย (เช่น การเรียกผ่าน IFrames ที่ซ่อนไว้แทน).
ระบบจัดการแพ็จเกจ
[แก้]Dojo มีระบบการจัดการเป็นแพ็จเกจ เพื่อให้สามารถแยกพัฒนาเป็นส่วนๆได้ โดยสคริปต์ส่วนหลักทำหน้าที่จัดสภาพแวดล้อมเพื่อเตรียมโหลดแพ็จเกจที่จะใช้ โดยสร้างเนมสเปซต่างๆ เช่น "io", "event", "lfx", และอื่นๆ ไว้ใต้เนมสเปซ "dojo" หลังจากนั้นเมื่อต้องการใช้แพ็จเกจใด ค่อยโหลดแพ็จเกจนั้นๆในระหว่างการทำงานขึ้นมา (เช่น ผ่าน XMLHttpRequest) โดยระบบจัดการแพ็จเกจสามารถโหลดแพ็จเกจอื่นๆนอกจาก เนมสเปซ "dojo" ได้ ทำให้สามารถเพิ่มเอกซ์เทนชัน (Extension) หรือ ไลบรารี (Library) อื่นๆของเราเองได้ด้วย
แพ็จเกจหนึ่งๆอาจประกอบด้วยไฟล์เดียว หรือหลายๆไฟล์รวมกัน. แต่ละไฟล์หรือแพ็จเกจ สามารถบอกความต้องการว่าต้องใช้ไฟล์หรือแพ็จเกจใดบ้างในการทำงาน เมื่อทำการโหลด ของที่ต้องการทั้งหมดจะถูกโหลดตามไปโดยอัตโนมัติ
แต่เว็บเบราว์เซอร์มักไม่เก็บข้อมูลจาก XMLHttpRequest ไว้ในแคช ต่างจากไฟล์ JavaScript ธรรมดาที่มักจะถูกเก็บไว้เสมอ ทำให้การอ้างแพ็จเกจต่างๆ ต้องทำการโหลดจากเซิร์ฟเวอร์ใหม่ทุกครั้ง เพื่อลดปัญหาดังกล่าวจึงมีการสร้างโค้ดแบบเป็น โพรไฟล์ (Profiles) ขึ้น โดยสามารถเขียนโพรไฟล์ระบุรายการแพ็จเกจที่จำเป็น จากนั้นใช้ Apache Ant ช่วย เพื่อรวมแพ็จเกจเหล่านี้เป็นไฟล์ JavaScript ที่บีบอัดแล้วไฟล์เดียว
สำหรับโพรไฟล์การใช้งานทั่วๆไปสามารถหาดาวน์โหลด ได้ในที่เดียวกันกับที่ให้ดาวน์โหลด Dojo ฉบับเต็ม
การเก็บข้อมูลในฝั่งผู้ใช้
[แก้]นอกจากสนับสนุนการทำงานกับระบบคุกกี้แล้ว Dojo ยังมีระบบการเก็บข้อมูลในเครื่องผู้ใช้อย่างอื่นที่ เรียกว่า Dojo Storage ด้วย โดย Dojo Storage สามารถทำงานกับหลายเว็บเบราว์เซอร์ที่ได้รับความนิยมในปัจจุบัน เช่น อินเทอร์เน็ตเอกซ์พลอเรอร์, ไฟร์ฟอกซ์ และ ซาฟารี ในการทำงาน Dojo จะเลือกวิธีการเก็บข้อมูลที่เหมาะสมที่สุดในแต่ละเบราว์เซอร์เอง เช่น ใน ไฟร์ฟอกซ์ 2 จะใช้ระบบการเก็บข้อมูลของเบราว์เซอร์เอง (Native browser persistence), ในเบราว์เซอร์อื่นๆจะใช้ Flash applet. โดย Flash 6+ นั้นถูกติดตั้งมากกว่า 95% ของเครื่องคอมพิวเตอร์ที่ใช้อินเทอร์เน็ตได้ ทำให้ระบบการเก็บข้อมูลนี้สามารถใช้งานได้กับเว็บแอปพลิเคชันที่อยู่ทางฝั่งเซอฟ์เวอร์ส่วนใหญ่ สำหรับเว็บแอปพลิเคชัน ที่อยู่ภายในเครื่องของผู้ใช้เอง (อย่างเช่นในซีดีสื่อการสอน หรือ URL ที่ขึ้นด้นด้วย file://) สำหรับ ไฟร์ฟอกซ์ Dojo Storage จะใช้ XPCOM แทน และจะใช้ ActiveX แทนสำหรับ อินเทอร์เน็ตเอกซ์พลอเรอร์
นักพัฒนาสามารถใช้งาน Dojo Storage ในลักษณะเดียวกับการใช้ตารางแฮช (hash table) ผ่านการเรียก put() และ get()
ดูเพิ่ม
[แก้]อ้างอิง
[แก้]- ↑ 1.0 1.1 "A Brief History of Dojo". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2012-03-09. สืบค้นเมื่อ 2020-04-12.
- ↑ https://dojo.io/blog/
- ↑ https://www.typescriptlang.org/samples/index.html
- ↑ 4.0 4.1 "Dojo Toolkit License". Dojo Toolkit. สืบค้นเมื่อ 17 April 2017.[ลิงก์เสีย]
แหล่งข้อมูลอื่น
[แก้]- dojotoolkit.org (อังกฤษ)
- Dojo Project's JotSpot wiki เก็บถาวร 2007-01-28 ที่ เวย์แบ็กแมชชีน (อังกฤษ)
- Dojo Foundation เก็บถาวร 2007-01-05 ที่ เวย์แบ็กแมชชีน (อังกฤษ)
- Ajaxian.com (อังกฤษ)