อ่าน 7 นาที
เอ็กซ์ยูแอล
XUL ( / ˈ z uː l / ZOOL ) ซึ่งย่อมาจากXML User Interface Languageเป็นภาษามาร์กอัปสำหรับส่วนติดต่อผู้ใช้ที่พัฒนาโดยMozilla XUL เป็นรูปแบบXML
เอ็กซ์ยูแอล
| เอ็กซ์ยูแอล | |
|---|---|
| กระบวนทัศน์ | เชิงประกาศ ( ภาษามาร์กอัป ) |
| นักพัฒนา | มูลนิธิโมสโมซซา |
| ภาษาการใช้งาน | ซี++ |
| แพลตฟอร์ม | จิ้งจก / กิ้งก่ายักษ์ |
| โอเอส | ข้ามแพลตฟอร์ม |
| ใบอนุญาต | เอ็มพีแอล |
| นามสกุลไฟล์ | .xulประเภท MIME :application/vnd.mozilla.xul+xml |
| เว็บไซต์ | https://wiki.mozilla.org/XUL:Home_Page |
| การนำไปใช้งานหลักๆ | |
| โมซโมซา | |
| ได้รับอิทธิพลจาก | |
| HTML , XML | |
XUL ( / ˈ z uː l / ZOOL ) ซึ่งย่อมาจากXML User Interface Languageเป็นภาษามาร์กอัปสำหรับส่วนติดต่อผู้ใช้ที่พัฒนาโดยMozilla XUL เป็นรูปแบบXML สำหรับการเขียนส่วนติดต่อผู้ใช้แบบกราฟิกทำให้ผู้พัฒนาสามารถเขียนองค์ประกอบส่วนติดต่อผู้ใช้ในลักษณะที่คล้ายกับเว็บเพจได้
แอปพลิเคชัน XUL อาศัยโค้ดเบส ของ Mozilla หรือโค้ดที่แยกออกมาจากมัน ตัวอย่างที่โดดเด่นที่สุดคือ เว็บเบราว์เซอร์ Firefoxอย่างไรก็ตาม Mozilla ได้ลดการใช้งาน XUL ใน Firefox ลงอย่างมากหลังจากที่เขียนเอ็นจิ้นเบราว์เซอร์ใหม่ในเวอร์ชัน 57 [ 1 ] [ 2 ]ส่งผลให้ ระบบ ส่วนเสริม แบบเดิม ซึ่งอาศัย XUL และXPCOMซึ่งเป็นเทคโนโลยีข้ามแพลตฟอร์มอีกอย่างหนึ่งที่ Mozilla ตัดสินใจยกเลิกก่อนการเปิดตัว Firefox 57 ไม่นานถูกลบออกไป เดิมที Firefox อนุญาตให้ส่วนเสริมเปลี่ยนแปลงอินเทอร์เฟซผู้ใช้ได้อย่างกว้างขวาง แต่ความสามารถนี้ถูกลบออกในปี 2017 และแทนที่ด้วย WebExtensions API ที่อนุญาตน้อยกว่า[ 3 ] [ 4 ]โค้ดที่แยก ออกมาจาก Firefox หลายตัวยังคงรองรับส่วนเสริมที่ใช้ XUL และ XPCOM Waterfoxยังคงรักษาโค้ดเบสแบบเดิมของ Mozilla ไว้สำหรับเบราว์เซอร์Waterfox Classic [ 5 ]เบราว์เซอร์Pale Moon [ 6 ] เบราว์เซอร์Basilisk [ 7 ]และโครงการขนาดเล็กจำนวนมากใช้และบำรุงรักษาการใช้งาน Unified XUL Platform (UXP) ร่วมกัน
ประวัติศาสตร์

XUL ถูกคิดค้นขึ้นที่Netscapeในปี 1997 ซึ่งเป็นส่วนหนึ่งของความพยายามในการพัฒนาที่ในที่สุดก็กลายเป็นโค้ดเบสของ Mozilla [ 8 ] XUL มีลักษณะคล้ายกับเทคโนโลยีเว็บที่ใช้โดย เอนจิ้นการเรนเดอร์ Geckoเมื่อ XUL เปิดตัว มันได้เพิ่มคุณสมบัติที่เหนือกว่าHTML 4 มาตรฐานในขณะนั้น มันถูกออกแบบมาให้เป็นส่วนขยายของ HTML เพื่อใช้กับแอปพลิเคชันมากกว่าเอกสาร[ 9 ]
XUL ถูกใช้โดยโครงการต่างๆ ของ Mozilla โครงการ ที่แยกออกมาจาก Mozilla และโครงการที่เกี่ยวข้องกับ Mozilla อย่างใกล้ชิด โครงการซอฟต์แวร์บางโครงการ เช่นSongbird , Komodo IDEและZoteroเริ่มต้นจากการเป็นแอปพลิเคชันเดสก์ท็อปที่ใช้XULRunnerในการเรนเดอร์และสร้าง UI ในช่วงต้นทศวรรษ 2000 มีความสนใจในการใช้ XUL จากฝ่ายอื่นๆ รวมถึงAmazon [ 10 ]แต่พวกเขาก็เปลี่ยนไปใช้HTML5แทน[ 1 ] [ 2 ] คุณสมบัติหลายอย่างของเทคโนโลยีเว็บสมัยใหม่ เช่น HTML5, CSS3, ECMAScript 5+, WebGL และ WebAssembly ที่ทำให้แอปพลิเคชันเว็บที่ทันสมัยและครบครันเป็นไปได้ โดยไม่จำเป็นต้องใช้เทคโนโลยีปลั๊กอินเบราว์เซอร์NPAPI / PPAPI / ActiveX แบบดั้งเดิม เช่น Adobe Flash , Silverlight , JavaหรือShockwaveทำให้ XUL ส่วนใหญ่ไม่จำเป็นอีกต่อไป[ 9 ]
Mozilla ได้เปิดตัว Firefox 57 หรือที่รู้จักกันในชื่อ Firefox Quantum ในเดือนพฤศจิกายน 2017 ซึ่งเป็นส่วนหนึ่งของการเปลี่ยนแปลงนี้ Firefox ได้เสร็จสิ้นการเปลี่ยนไปใช้สถาปัตยกรรมแบบมัลติโปรเซส แม้ว่าส่วนเสริม XUL จะสามารถทำงานในสถาปัตยกรรมนี้ได้ แต่ก็มักจะสร้างปัญหาด้านประสิทธิภาพอย่างมาก ด้วยเหตุนี้ Mozilla จึงได้ลบการสนับสนุนส่วนเสริม แบบเก่า รวมถึงการใช้โค้ด XUL แบบกำหนดเอง[ 3 ] [ 4 ] Mozilla ได้เปลี่ยนระบบส่วนขยายของเบราว์เซอร์ไปใช้ WebExtensions API แบบข้ามเบราว์เซอร์ ซึ่งส่วนใหญ่มีพื้นฐานมาจาก Chrome extension API ในช่วงปลายปี 2017 Firefox ยังคงมี XUL bindings จำนวน 289 รายการสำหรับส่วนประกอบเบราว์เซอร์ดั้งเดิม ภายในสิ้นปี 2019 Mozilla ได้ลบไฟล์ XUL ทั้งหมดออกจากmozilla-centralrepository ของพวกเขา [ 11 ] [ 1 ] [ 2 ]
เมื่อ Mozilla ยกเลิกการสนับสนุน XUL จาก Firefox ก็ยังมีแอปพลิเคชันหลายตัวที่ใช้ XUL อยู่ Mozilla เริ่มทยอยยกเลิกการสนับสนุน XUL จากโปรแกรมอีเมลThunderbirdพวกเขาปล่อย Thunderbird 78 ที่ไม่มีการสนับสนุนส่วนขยายที่ใช้ XUL ในปี 2020 [ 12 ] ชุด โปรแกรมอินเทอร์เน็ต SeaMonkeyเลือกที่จะนำ XUL กลับมาใช้ใหม่สำหรับโค้ดเบสของ Firefox Quantum และการพัฒนาชุดโปรแกรมก็ชะลอตัวลงหลังจากนั้น นักพัฒนา Pale Moonได้แยกโค้ดเบส Firefox 52 ESR ทั้งหมดของ Mozilla เพื่อสร้าง Unified XUL Platform (UXP)สำหรับ เอ็นจิ้นการเรนเดอร์ Goanna ของพวกเขา UXP ยังคงรักษาความสามารถของ XUL แบบดั้งเดิมไว้[ 13 ]ด้วยเหตุนี้ Pale Moon และแอปพลิเคชัน UXP อื่นๆ จึงสามารถขยายได้มากกว่าเมื่อเทียบกับ Firefox และ Thunderbird เวอร์ชันใหม่ๆ[ 14 ]
การใช้งาน
XUL สามารถใช้งานได้เฉพาะกับโค้ดเบสของ Mozilla (หรือเวอร์ชันที่แยกออกมา) เท่านั้น เนื่องจากเอ็นจิ้นGecko (หรือGoanna ) ทำหน้าที่เรนเดอร์ XUL [ 15 ]
โปรแกรมเมอร์แอปพลิเคชันจำเป็นต้องกำหนดอินเทอร์เฟซ XUL เป็นชุดส่วนประกอบที่แยกจากกันสามชุด:
- เนื้อหา: เอกสาร XUL ซึ่งองค์ประกอบต่างๆ กำหนดเค้าโครงของส่วนติดต่อผู้ใช้
- สกิน: ไฟล์ CSS และไฟล์รูปภาพที่กำหนดลักษณะการแสดงผลของแอปพลิเคชัน
- ไฟล์ภาษา: ไฟล์ที่บรรจุข้อความที่ผู้ใช้มองเห็นได้ เพื่อให้การแปลซอฟต์แวร์เป็นภาษาต่างๆ ทำได้ง่าย
XUL กำหนดองค์ประกอบที่หลากหลาย ซึ่งโดยคร่าวๆ แล้วจัดอยู่ในประเภทต่อไปนี้:
- องค์ประกอบระดับบนสุด: หน้าต่าง , หน้า, กล่องโต้ตอบ , ตัวช่วยสร้างฯลฯ
- วิดเจ็ต : ป้ายกำกับ, ปุ่ม , กล่องข้อความ , กล่องรายการ, กล่องคอมโบ , ปุ่มวิทยุ , ช่องทำเครื่องหมาย , โครงสร้าง แบบต้นไม้ , เมนู , แถบเครื่องมือ , กล่องกลุ่ม, กล่องแท็บ , ตัวเลือกสี, ตัวเว้นวรรค, ตัวแบ่ง ฯลฯ
- โมเดลกล่อง: กล่อง, ตาราง, กองซ้อน, สำรับ ฯลฯ
- เหตุการณ์และสคริปต์: สคริปต์, คำสั่ง, คีย์, ผู้ประกาศ, ผู้สังเกตการณ์ ฯลฯ
- แหล่งข้อมูล: เทมเพลต, กฎ, เป็นต้น
- อื่นๆ: โอเวอร์เลย์, ไอเฟรม, เบราว์เซอร์, ตัวแก้ไข ฯลฯ
พฤติกรรมเริ่มต้นของวิดเจ็ต XUL สามารถเปลี่ยนแปลงได้โดยใช้การผูกปุ่ม XBL
เอ็กซ์บีแอล
XML Binding Language ( XBL ) เป็นภาษามาร์กอัปแบบXMLสำหรับเปลี่ยนแปลงพฤติกรรมของวิดเจ็ต XUL เช่นแถบเลื่อน[ 16 ] [ 17 ]ไฟล์ XBL ประกอบด้วยการผูก (bindings ) ซึ่งแต่ละรายการจะอธิบายพฤติกรรมของวิดเจ็ต XUL องค์ประกอบรากของไฟล์ XBL คือองค์ประกอบ <XUL> ซึ่งประกอบด้วยองค์ประกอบ <XUL> หนึ่งรายการขึ้นไปแต่ละองค์ประกอบ <XUL> ประกาศการผูกหนึ่งรายการ ซึ่งสามารถแนบกับองค์ประกอบ XUL ใดก็ได้ นอกจากนี้ยังอาจมีแอตทริบิวต์ <XUL> การผูกจะถูกกำหนดให้กับองค์ประกอบ <XUL> โดยการตั้งค่าคุณสมบัติ CSS เป็นURLของไฟล์การผูก[ 18 ]ตัวอย่างเช่น: <bindings><binding><binding>id-moz-binding
scrollbar { -moz- binding : url ( 'somefile.xml#binding1' ); }ตัวอย่าง
ตัวอย่างนี้แสดงปุ่มสามปุ่มที่ซ้อนกันอยู่ในกล่องแนวตั้ง: [ 19 ]

<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?><window id= "vbox example" title= "ตัวอย่างที่ 3...." xmlns= "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" > <layout> <button id= "yes1" label= "ใช่" /> <button id= "no1" label= "ไม่" /> <button id= "maybe1" label= "อาจจะ" /> </layout> </window>อ้างอิงถึงGhostbusters
XUL มีการอ้างอิงถึงภาพยนตร์เรื่อง Ghostbusters ปี 1984 [ 20 ]ตัวร้ายในภาพยนตร์เรื่องนี้คือเทพเจ้าสมมติ Zuul ผู้เฝ้าประตู[ 21 ] Zuul เข้าสิงร่างของตัวละคร Dana Barrett และประกาศว่า "ไม่มี Dana มีแต่ Zuul เท่านั้น" [ 22 ] [ 20 ]ผู้สร้าง XUL ซึ่งออกเสียงเหมือนกับ Zuul [ 23 ]ได้สร้างสโลแกนว่า "ไม่มีข้อมูล มีแต่ XUL เท่านั้น!" [ 24 ]สโลแกนและ Zuul ในฐานะผู้เฝ้าประตูถูกอ้างอิงในURI เนมสเปซ XML ของ XUL และเคยมีอยู่ในส่วนเสริม Firefox ทั้งหมดมาก่อน: [ 20 ]
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul
— Mozilla [ 20 ]
ดูเพิ่มเติม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เอ็กซ์ยูแอล
XUL ( / ˈ z uː l / ZOOL ) ซึ่งย่อมาจากXML User Interface Languageเป็นภาษามาร์กอัปสำหรับส่วนติดต่อผู้ใช้ที่พัฒนาโดยMozilla XUL เป็นรูปแบบXML
ประวัติศาสตร์
XUL ถูกคิดค้นขึ้นที่ Netscape ในปี 1997 ซึ่งเป็นส่วนหนึ่งของความพยายามในการพัฒนาที่ในที่สุดก็กลายเป็น โค้ดเบส ของ Mozilla [ 8 ] XUL มีลักษณะคล้ายกับเทคโนโลยีเว็บที่ใช้โดย เอนจิ้นการเรนเดอร์ Gecko เมื่อ XUL เปิดตัว มันได้เพิ่มคุณสมบัติที่เหนือกว่า HTML 4...
การใช้งาน
XUL สามารถใช้งานได้เฉพาะกับ โค้ดเบส ของ Mozilla (หรือเวอร์ชัน ที่แยกออก มา) เท่านั้น เนื่องจาก เอ็นจิ้น Gecko (หรือ Goanna ) ทำหน้าที่เรนเดอร์ XUL [ 15 ]
เอ็กซ์บีแอล
XML Binding Language ( XBL ) เป็น ภาษามาร์กอัป แบบ XML สำหรับเปลี่ยนแปลงพฤติกรรมของ วิดเจ็ต XUL เช่นแถบ เลื่อน [ 16 ] [ 17 ] ไฟล์ XBL ประกอบด้วย การผูก (bindings ) ซึ่งแต่ละรายการจะอธิบายพฤติกรรมของวิดเจ็ต XUL องค์ประกอบรากของไฟล์ XBL คือองค์ประกอบ...