อ่าน 8 นาที
เอ็กซ์ทีเจเอส
Ext JS เป็น เฟรมเวิร์กแอปพลิเคชัน JavaScript สำหรับสร้าง เว็บแอปพลิเคชัน แบบโต้ตอบข้ามแพลตฟอร์ม [ 2 ] โดยใช้เทคนิคต่างๆ เช่น Ajax , DHTML และ การเขียนสคริปต์ DOM...
เอ็กซ์ทีเจเอส
| เฟรมเวิร์ก JavaScript Ext JS | |
|---|---|
Ext JS 2.0 เว็บเดสก์ท็อป | |
| ปล่อย | 8 มกราคม 2550 |
| เวอร์ชันเสถียร | |
| พิมพ์ | ไลบรารี JavaScript |
| ใบอนุญาต | กรรมสิทธิ์ |
| เว็บไซต์ | www.sencha.com/products/extjs/ |
Ext JSเป็นเฟรมเวิร์กแอปพลิเคชันJavaScript สำหรับสร้าง เว็บแอปพลิเคชันแบบโต้ตอบข้ามแพลตฟอร์ม[ 2 ]โดยใช้เทคนิคต่างๆ เช่นAjax , DHTMLและ การเขียนสคริปต์ DOMสามารถใช้เป็นเฟรมเวิร์กส่วนประกอบแบบง่าย (ตัวอย่างเช่น เพื่อสร้างตารางแบบไดนามิกบนหน้าเว็บแบบคงที่) แต่ยังสามารถใช้เป็นเฟรมเวิร์กเต็มรูปแบบสำหรับการสร้างแอปพลิเคชันหน้าเดียว (SPA) ได้อีกด้วย
เดิมทีสร้างขึ้นเป็นส่วนขยายไลบรารีเสริม[ 3 ]ของYUIโดย Jack Slocum เมื่อวันที่ 15 เมษายน 2550 [ 4 ] Ext JS ไม่มีการพึ่งพาไลบรารีภายนอกใดๆ ตั้งแต่เวอร์ชัน 1.1 เป็นต้นไป[ 5 ]ปัจจุบัน Ext JS สามารถใช้งานได้ทั้งในรูปแบบสคริปต์เดียว (โดยมีคลาสและคอมโพเนนต์ทั้งหมดอยู่ในไฟล์เดียว) หรือโดยการสร้างแอปพลิเคชันด้วย Sencha CMD
คุณสมบัติ
ส่วนควบคุม GUI (ส่วนประกอบ)
Ext JS ประกอบด้วยชุด ควบคุมฟอร์มแบบ GUI (หรือ " วิดเจ็ต ") สำหรับใช้ในแอปพลิเคชันเว็บ:
- ช่องข้อความและช่องป้อนข้อความแบบหลายช่อง
- ช่องกรอกวันที่พร้อมตัวเลือกวันที่แบบป๊อปอัพ
- ช่องตัวเลข
- กล่องรายการและกล่องคอมโบ
- การควบคุมวิทยุและช่องทำเครื่องหมาย
- ตัวควบคุมตัวแก้ไข HTML
- การควบคุมตาราง (พร้อมโหมดอ่านอย่างเดียวและโหมดแก้ไข ข้อมูลสามารถเรียงลำดับได้ คอลัมน์สามารถล็อกและลากได้ และคุณสมบัติอื่นๆ อีกมากมาย)
- การควบคุมต้นไม้
- แผงแท็บ
- แถบเครื่องมือ
- เมนูแบบแอปพลิเคชันบนเดสก์ท็อป
- แผงแบ่งส่วนภูมิภาค เพื่อให้สามารถแบ่งแบบฟอร์มออกเป็นส่วนย่อยหลายส่วนได้
- ตัวเลื่อน
- แผนภูมิกราฟิกเวกเตอร์
ธีมและชุดเครื่องมือ
Sencha ยังมีธีมให้เลือกใช้เพื่อตกแต่งส่วนประกอบต่างๆ การเปลี่ยนธีมทำได้ง่ายๆ เพียงแค่เปลี่ยน CSS และสคริปต์ของธีม เมื่อใช้ Sencha CMD อาจจำเป็นต้องสร้างแอปพลิเคชันใหม่[ 6 ]
ส่วนประกอบทั้งหมดควรใช้งานได้กับทุกธีม แต่รูปลักษณ์และการใช้งานจะแตกต่างกัน ตัวอย่างเช่น ธีม Classic มีองค์ประกอบขนาดเล็กที่ไม่เหมาะกับอุปกรณ์สัมผัส ในขณะที่ธีม Neptune Touch มีองค์ประกอบขนาดใหญ่กว่า เหมาะสำหรับแท็บเล็ตและโทรศัพท์มากกว่า
Ext JS มีให้เลือกสองแบบ คือ ชุดเครื่องมือ สมัยใหม่และ ชุดเครื่องมือ คลาสสิก ทั้งสอง แบบแตกต่างกันไม่เพียงแค่ธีมที่มีให้เลือกเท่านั้น แต่ยังมีข้อแตกต่างด้าน API บางประการด้วย ดังนั้นการย้ายจากชุดเครื่องมือหนึ่งไปยังอีกชุดเครื่องมือหนึ่งจึงไม่ใช่เรื่องง่ายเหมือนกับการย้ายธีม มีแผนที่จะปรับความแตกต่างระหว่างชุดเครื่องมือทั้งสองให้เท่ากันใน Ext JS 7.1 ซึ่งมีกำหนดวางจำหน่ายในปี 2019 [ 7 ]
ชุดเครื่องมือการเขียนโปรแกรม
Ext JS คือการรวมกันของคลาสต่างๆ ที่มีความสามารถมากมาย ตัวอย่างเช่น:
- เลเยอร์นามธรรมสำหรับเบราว์เซอร์ (เช่น
Ext.isArrayที่สามารถใช้แทนได้Array.isArray) - การจัดการของรัฐ (ร้านค้า)
- ชั้นการสื่อสารของเซิร์ฟเวอร์ (พร็อกซีและ
Ext.Ajax.request) - การจัดวางและการจัดการหน้าต่าง
- การจัดการกิจกรรม (พร้อมการสร้างกิจกรรมแบบกำหนดเองสำหรับส่วนประกอบแบบกำหนดเองที่ง่ายขึ้น)
- การกำหนดเส้นทาง
ระบบชนชั้น
Ext JS มีระบบคลาสของตัวเอง[ 8 ] [ 9 ]คลาสจะถูกกำหนดด้วยExt.defineและจากนั้นสามารถสร้างอินสแตนซ์ได้ด้วยExt.createคลาสบางคลาส (เช่น คอมโพเนนต์และสโตร์) สามารถมีนามแฝงได้ และสามารถสร้างได้โดยใช้นามแฝง อินสแตนซ์ของคอมโพเนนต์จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อคอมโพเนนต์หลักถูกสร้างขึ้น
คลาสสามารถขยายได้ทั้งคลาสที่กำหนดเองและคลาสในตัว โดยทั่วไปแล้วส่วนประกอบที่กำหนดเองจะขยายส่วนประกอบในตัว (เช่นMyApp.views.ProductsTableจะขยายส่วนประกอบในตัวExt.grid.Panel) [ 10 ]
ExtJS มีตัวโหลดแบบไดนามิกในตัว ทำให้คลาสสามารถมี dependency แบบไดนามิกได้ (โหลดตามความต้องการ) ใน ExtJS มี dependency สองประเภท คือ dependency ที่ประกาศด้วยrequiresproperty จะถูกโหลดก่อนที่จะสร้าง instance ของคลาส และ dependency ที่กำหนดในusesproperty อาจถูกโหลดหลังจากสร้าง instance ของคลาสแล้ว
นอกจากนี้ยังสามารถเขียนทับคลาสได้ แม้แต่คลาสในตัว การเขียนทับคลาสในตัวอาจมีประโยชน์ เช่น เพื่อให้รองรับหลายภาษา[ 11 ]หรือสร้างแพทช์ คลาสที่เขียนทับจะถูกรวมเข้ากับการประกาศใหม่ แต่ละคลาสสามารถเขียนทับได้หลายครั้งตามที่ต้องการ (เช่น เพื่อให้รองรับหลายภาษา แล้วจึงรองรับหลายภาษา)
ประวัติเวอร์ชันของ Ext JS
เอ็กซ์ที เจเอส 2.0
Ext JS เวอร์ชัน 2.0 เปิดตัวเมื่อวันที่ 4 ธันวาคม พ.ศ. 2550 เวอร์ชันนี้ได้รับการโปรโมตว่าเป็นเวอร์ชันที่มีอินเทอร์เฟซและคุณสมบัติที่คล้ายคลึงกับแอปพลิเคชันเดสก์ท็อปแบบดั้งเดิมมากขึ้น นอกจากนี้ยังมีการโปรโมตเอกสารผู้ใช้ใหม่ เอกสาร APIและตัวอย่าง อีกด้วย [ 12 ]
Ext JS 2.0 ไม่ได้ให้ความเข้ากันได้ย้อนหลังกับเวอร์ชัน 1.1 คู่มือการย้ายข้อมูลได้รับการพัฒนาขึ้นเพื่อแก้ไขปัญหานี้[ 13 ]
เอ็กซ์ที เจเอส 3.0
Ext JS เวอร์ชัน 3.0 เปิดตัวเมื่อวันที่ 6 กรกฎาคม 2552 เวอร์ชันนี้เพิ่มการรองรับการสื่อสารผ่านRESTและแพลตฟอร์มฝั่งเซิร์ฟเวอร์ Ext.Direct ใหม่ นอกจากนี้ยังเพิ่มองค์ประกอบการสร้างแผนภูมิ Flash และ ListView ลงในส่วนประกอบการแสดงผลมาตรฐาน และยังคงใช้งานร่วมกับโค้ดเวอร์ชัน 2.0 ได้
เอ็กซ์ที เจเอส 4.0
เฟรมเวิร์ก Ext เวอร์ชัน 4.0 ได้รับการเผยแพร่เมื่อวันที่ 26 เมษายน 2554 ซึ่งประกอบด้วยโครงสร้างคลาสที่ได้รับการแก้ไขอย่างสมบูรณ์[ 14 ]แพ็กเกจข้อมูลที่ได้รับการแก้ไข แพ็กเกจแอนิเมชันและการวาดภาพที่ใช้SVGและVML [ 15 ]และการสร้างแผนภูมิและธีมที่ได้รับการแก้ไข นอกจากนี้ยังรวมถึงสถาปัตยกรรมเสริมที่ให้รูปแบบ การจัดระเบียบโค้ดแบบ โมเดล-วิว-คอนโทรลเลอร์ (MVC)
เอ็กซ์ที เจเอส 5.0
เฟรมเวิร์ก Ext JS เวอร์ชัน 5.0 เปิดตัวเมื่อวันที่ 2 มิถุนายน 2557 [ 16 ]ซึ่งรวมถึงความสามารถในการสร้างแอปเดสก์ท็อปบนอุปกรณ์ที่รองรับการสัมผัส[ 17 ]โดยใช้ฐานโค้ดเดียว สถาปัตยกรรม Model View ViewModel ( MVVM ) การผูกข้อมูลแบบสองทาง เลย์เอาต์ที่ตอบสนอง และการอัปเกรดส่วนประกอบอื่นๆ พร้อมการสนับสนุนการเพิ่มวิดเจ็ตภายในเซลล์ตารางสำหรับการแสดงภาพข้อมูลและการวิเคราะห์ข้อมูลขนาดใหญ่[ 18 ] Ext JS 5 ยังรวมถึงแพ็คเกจการสร้างแผนภูมิที่ปรับให้เหมาะสมกับการสัมผัสที่ได้รับการอัปเกรด พร้อมด้วยความสามารถในการสร้างแผนภูมิทางการเงินเพิ่มเติม
Ext JS 5 รองรับเบราว์เซอร์ทั้งรุ่นใหม่และรุ่นเก่า ได้แก่ Safari 6+, Firefox, IE8+, Chrome และ Opera 12+ สำหรับแพลตฟอร์มมือถือ Ext JS 5 รองรับ Safari บน iOS 6 และ 7, Chrome บน Android 4.1+ และอุปกรณ์หน้าจอสัมผัส Windows 8 (เช่น Surface และแล็ปท็อปหน้าจอสัมผัส) ที่ใช้ IE10+
ข้อสำคัญ: ตั้งแต่เวอร์ชัน Ext JS 5 เป็นต้นไป คุณไม่สามารถซื้อใบอนุญาตสำหรับนักพัฒนาน้อยกว่า 5 คนได้
เอ็กซ์ที เจเอส 6.0
เฟรมเวิร์ก Ext JS เวอร์ชัน 6.0 เปิดตัวเมื่อวันที่ 1 กรกฎาคม 2558 [ 19 ]โดยได้รวม เฟรมเวิร์ก Sencha Touch (มือถือ) เข้ากับ Ext JS [ 20 ]
ส่วนขยาย JS 7.0
เฟรมเวิร์ก Ext JS เวอร์ชัน 7.0 เปิดตัวเมื่อวันที่ 29 สิงหาคม 2562 [ 21 ]เวอร์ชันนี้ได้แนะนำส่วนประกอบใหม่หลายอย่างใน Modern Toolkit ส่วน Classic Toolkit ได้รับธีม Material Design
เซนฉะ
เมื่อวันที่ 15 มิถุนายน พ.ศ. 2553 มีการประกาศการรวม Ext JS กับJQTouchและRaphaël [ 22 ]ก่อตั้งองค์กรใหม่ชื่อ Sencha Inc. Ext JS ยังคงมีให้บริการเป็นผลิตภัณฑ์หลักบนเว็บไซต์ Sencha ใหม่[ 23 ]พร้อมกับSencha Touch , Sencha GWT (ปัจจุบันคือ Sencha GXT), Sencha Architect, Sencha Animator และ Ext core
เมื่อวันที่ 23 สิงหาคม 2560 Sencha ถูกซื้อกิจการโดยIDERA (ซึ่งเป็นเจ้าของEmbarcadero Technologies ) Embarcadero เป็นที่รู้จักในด้านการซื้อกิจการซอฟต์แวร์พัฒนาแอปพลิเคชันอย่างรวดเร็ว เช่นDelphi (ซึ่งใช้Object Pascalเป็นภาษาโปรแกรมหลัก) [ 24 ]
ปลั๊กอิน Sencha JetBrains
ปลั๊กอิน JetBrains ของ Sencha เป็นเครื่องมือสภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) ที่สร้างการทำงานร่วมกันระหว่างเฟรมเวิร์กของ Sencha และซอฟต์แวร์ JetBrains การทำงานร่วมกันนี้มาในรูปแบบของการเติมโค้ดอัตโนมัติการตรวจสอบ และการแนะนำโค้ด โดยทำงานร่วมกับพฤติกรรมพื้นฐานของ JetBrains
เอ็กซ์ที.เอ็นที
Ext.NET เป็น เฟรมเวิร์กคอมโพเนนต์ ASP.NETที่รวมไลบรารี Ext [ 25 ]เวอร์ชันปัจจุบัน (ณ เดือนกันยายน 2017) คือ 4.4 ซึ่งรวม ExtJS เวอร์ชัน 6.5.1
ประวัติใบอนุญาต
YUI-Ext สามารถใช้งานได้ภายใต้ใบอนุญาต BSDในเดือนเมษายน พ.ศ. 2551 ใบอนุญาตโอเพนซอร์สที่เกี่ยวข้องกับ Ext ได้ถูกเปลี่ยนแปลง ในเวอร์ชัน 2.0.2 ผู้เขียนระบุว่า Ext สามารถใช้งานได้ภายใต้ ใบอนุญาตแบบ LGPLตราบใดที่คุณ "วางแผนที่จะใช้ Ext ในลักษณะส่วนตัว การศึกษา หรือไม่แสวงหาผลกำไร" หรือ "ในโครงการโอเพนซอร์สที่ห้ามใช้ซอฟต์แวร์ที่ไม่ใช่โอเพนซอร์ส" หรือ "กำลังใช้ Ext ในแอปพลิเคชันเชิงพาณิชย์ที่ไม่ใช่ไลบรารีหรือชุดเครื่องมือพัฒนาซอฟต์แวร์" ซึ่งไม่เป็นเช่นนั้นอีกต่อไปใน Ext 2.1 [ 26 ]ผู้เขียน Ext อ้างว่ามาตรา 7 [ 27 ]ของ LGPL ตามที่ระบุไว้นั้นไม่ใช้กับ "เงื่อนไข" ที่ใบอนุญาตของพวกเขากำหนดไว้ก่อนที่การแจกจ่ายภายใต้ LGPL จะได้รับอนุญาต ซึ่งแตกต่างจาก "ข้อจำกัดเพิ่มเติม" ซึ่งมาตรา 7 อนุญาตให้ผู้จัดจำหน่ายลบออกได้[ 28 ]
เมื่อวันที่ 20 เมษายน พ.ศ. 2551 Ext 2.1 ได้รับการเผยแพร่ภายใต้โครงสร้างใบอนุญาตคู่แบบใหม่ ซึ่งอนุญาตให้เลือกใช้ใบอนุญาต GPL 3.0 เต็มรูปแบบหรือใบอนุญาตกรรมสิทธิ์ได้[ 29 ]
การเปลี่ยนแปลงใบอนุญาตเมื่อเวลาผ่านไป จากใบอนุญาตโอเพนซอร์สที่อนุญาต ไปเป็นใบอนุญาตคู่ที่จำกัด ทำให้เกิดข้อโต้แย้งในชุมชนผู้ใช้ Ext [ 30 ] [ 31 ] [ 32 ] [ 33 ]
Sencha ได้เผยแพร่รายละเอียดเกี่ยวกับเงื่อนไขใบอนุญาตเชิงพาณิชย์และ GPL บนเว็บไซต์ของตน[ 34 ]
ในเดือนพฤศจิกายน 2018 Sencha ได้ประกาศเปิดตัว Community Edition ซึ่งใช้งานได้ฟรีแต่มีข้อจำกัดด้านรายได้ประจำปีของบุคคลหรือบริษัทที่ใช้ ExtJS [ 35 ] [ 36 ]
ดูเพิ่มเติม
- การเปรียบเทียบเฟรมเวิร์ก JavaScript
- การเปรียบเทียบไลบรารีสร้างแผนภูมิ JavaScript
- เฟรมเวิร์ก JavaScript
- ไลบรารี JavaScript
บรรณานุกรม
- Orchard, Leslie M.; Pehlivanian, Ara; Koon, Scott; Jones, Harley (31 สิงหาคม 2552). เฟรมเวิร์ก JavaScript ระดับมืออาชีพ: Prototype, YUI, ExtJS, Dojo และ MooTools (ฉบับพิมพ์ครั้งที่ 1). สำนักพิมพ์ Wrox . หน้า 888. ISBN 978-0-470-38459-6เก็บถาวรจากต้นฉบับเมื่อวันที่ 6 กรกฎาคม 2554 เรียกดูเมื่อวันที่ 15 สิงหาคม 2552
- Frederick, Shea; Ramsay, Colin; 'Cutter' Blades, Steve (28 พฤศจิกายน 2008). Learning Ext JS (ฉบับพิมพ์ครั้งที่ 1). สำนักพิมพ์ Packt . หน้า 299. ISBN 978-1-84719-514-2.
- Gonzalez, Armando; Villa, Crysfel (8 ตุลาคม 2012). Learning Ext JS 4 (ฉบับพิมพ์ครั้งที่ 1). สำนักพิมพ์ Packt . หน้า 434. ISBN 978-1-84951-684-6.
ลิงก์ภายนอก
- เว็บไซต์ Ext JS ดั้งเดิมโดย Jack Slocum
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เอ็กซ์ทีเจเอส
Ext JS เป็น เฟรมเวิร์กแอปพลิเคชัน JavaScript สำหรับสร้าง เว็บแอปพลิเคชัน แบบโต้ตอบข้ามแพลตฟอร์ม [ 2 ] โดยใช้เทคนิคต่างๆ เช่น Ajax , DHTML และ การเขียนสคริปต์ DOM...
ส่วนควบคุม GUI (ส่วนประกอบ)
Ext JS ประกอบด้วยชุด ควบคุมฟอร์มแบบ GUI (หรือ " วิดเจ็ต ") สำหรับใช้ในแอปพลิเคชันเว็บ:
ธีมและชุดเครื่องมือ
Sencha ยังมีธีมให้เลือกใช้เพื่อตกแต่งส่วนประกอบต่างๆ การเปลี่ยนธีมทำได้ง่ายๆ เพียงแค่เปลี่ยน CSS และสคริปต์ของธีม เมื่อใช้ Sencha CMD อาจจำเป็นต้องสร้างแอปพลิเคชันใหม่ [ 6 ]
ชุดเครื่องมือการเขียนโปรแกรม
Ext JS คือการรวมกันของคลาสต่างๆ ที่มีความสามารถมากมาย ตัวอย่างเช่น: