บทความนี้ยังต้องการเพิ่มเพื่อ |
โดโจทูลคิต (อังกฤษ: Dojo Toolkit เขียนตามสไตล์เป็น dōjō toolkit) เป็น โอเพนซอร์ส ทูลคิท ที่เขียนด้วยจาวาสคริปต์ ช่วยในการพัฒนาเอแจ็กซ์ในเว็บแอปพลิเคชัน ริเริ่มโดย อเล็กซ์ รัสเสล (Alex Russell) ใน พ.ศ. 2547 ภายใต้การดูแลของมูลนิธิโดโจ (Dojo Foundation) มีสัญญาอนุญาต 2 แบบให้เลือกใช้ ได้แก่ และ มูลนิธิโดโจเป็นองค์กรไม่แสวงหาผลประโยชน์มีวัตถุประสงค์เพื่อส่งเสริมการนำทูลคิทนี้ไปใช้งาน
นักพัฒนา | Dojo Foundation |
---|---|
วันที่เปิดตัว | [[ข้อผิดพลาดนิพจน์: "{" เป็นอักขระเครื่องหมายวรรคตอนที่ไม่รู้จัก มีนาคม]] พ.ศ. 2548 |
รุ่นเสถียร | 6.0.0 / 28 สิงหาคม พ.ศ. 2562 |
ที่เก็บข้อมูล | 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: |
ระบบปฏิบัติการ | ข้ามแพลตฟอร์ม |
ประเภท | JavaScript toolkit (or ) |
สัญญาอนุญาต | The หรือ the (≥ 2.1) |
เว็บไซต์ | https://dojotoolkit.org, https://dojo.io/ |
ความสามารถ
เครื่องมือในหน้าเว็บเพจ (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" ได้ ทำให้สามารถเพิ่ม หรือ ไลบรารี (Library) อื่นๆของเราเองได้ด้วย
แพ็จเกจหนึ่งๆอาจประกอบด้วยไฟล์เดียว หรือหลายๆไฟล์รวมกัน. แต่ละไฟล์หรือแพ็จเกจ สามารถบอกความต้องการว่าต้องใช้ไฟล์หรือแพ็จเกจใดบ้างในการทำงาน เมื่อทำการโหลด ของที่ต้องการทั้งหมดจะถูกโหลดตามไปโดยอัตโนมัติ
แต่เว็บเบราว์เซอร์มักไม่เก็บข้อมูลจาก XMLHttpRequest ไว้ในแคช ต่างจากไฟล์ JavaScript ธรรมดาที่มักจะถูกเก็บไว้เสมอ ทำให้การอ้างแพ็จเกจต่างๆ ต้องทำการโหลดจากเซิร์ฟเวอร์ใหม่ทุกครั้ง เพื่อลดปัญหาดังกล่าวจึงมีการสร้างโค้ดแบบเป็น โพรไฟล์ (Profiles) ขึ้น โดยสามารถเขียนโพรไฟล์ระบุรายการแพ็จเกจที่จำเป็น จากนั้นใช้ ช่วย เพื่อรวมแพ็จเกจเหล่านี้เป็นไฟล์ JavaScript ที่บีบอัดแล้วไฟล์เดียว
สำหรับโพรไฟล์การใช้งานทั่วๆไปสามารถหาดาวน์โหลด ได้ในที่เดียวกันกับที่ให้ดาวน์โหลด Dojo ฉบับเต็ม
การเก็บข้อมูลในฝั่งผู้ใช้
นอกจากสนับสนุนการทำงานกับระบบคุกกี้แล้ว Dojo ยังมีระบบการเก็บข้อมูลในเครื่องผู้ใช้อย่างอื่นที่ เรียกว่า Dojo Storage ด้วย โดย Dojo Storage สามารถทำงานกับหลายเว็บเบราว์เซอร์ที่ได้รับความนิยมในปัจจุบัน เช่น อินเทอร์เน็ตเอกซ์พลอเรอร์, ไฟร์ฟอกซ์ และ ซาฟารี ในการทำงาน Dojo จะเลือกวิธีการเก็บข้อมูลที่เหมาะสมที่สุดในแต่ละเบราว์เซอร์เอง เช่น ใน ไฟร์ฟอกซ์ 2 จะใช้ระบบการเก็บข้อมูลของเบราว์เซอร์เอง (Native browser persistence), ในเบราว์เซอร์อื่นๆจะใช้ Flash applet. โดย Flash 6+ นั้นถูกติดตั้งมากกว่า 95% ของเครื่องคอมพิวเตอร์ที่ใช้อินเทอร์เน็ตได้ ทำให้ระบบการเก็บข้อมูลนี้สามารถใช้งานได้กับเว็บแอปพลิเคชันที่อยู่ทางฝั่งเซอฟ์เวอร์ส่วนใหญ่ สำหรับเว็บแอปพลิเคชัน ที่อยู่ภายในเครื่องของผู้ใช้เอง (อย่างเช่นในซีดีสื่อการสอน หรือ URL ที่ขึ้นด้นด้วย file://) สำหรับ ไฟร์ฟอกซ์ Dojo Storage จะใช้ แทน และจะใช้ แทนสำหรับ อินเทอร์เน็ตเอกซ์พลอเรอร์
นักพัฒนาสามารถใช้งาน Dojo Storage ในลักษณะเดียวกับการใช้ตารางแฮช (hash table) ผ่านการเรียก put() และ get()
ดูเพิ่ม
อ้างอิง
- A Brief History of Dojo
- https://dojo.io/blog/
- https://www.typescriptlang.org/samples/index.html
- "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 (อังกฤษ)
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
bthkhwamniyngtxngkarephimaehlngxangxingephuxphisucnkhwamthuktxngkhunsamarthphthnabthkhwamniidodyephimaehlngxangxingtamsmkhwr enuxhathikhadaehlngxangxingxacthuklbxxk haaehlngkhxmul odocthulkhit khaw hnngsuxphimph hnngsux skxlar JSTOR eriynruwacanasaraemaebbnixxkidxyangiraelaemuxir odocthulkhit xngkvs Dojo Toolkit ekhiyntamsitlepn dōjō toolkit epn oxephnsxrs thulkhith thiekhiyndwycawaskhript chwyinkarphthnaexaecksinewbaexpphliekhchn rierimody xelks rsesl Alex Russell in ph s 2547 phayitkarduaelkhxngmulnithiodoc Dojo Foundation misyyaxnuyat 2 aebbiheluxkich idaek aela mulnithiodocepnxngkhkrimaeswnghaphlpraoychnmiwtthuprasngkhephuxsngesrimkarnathulkhithniipichnganodocthulkhit kxnrunthi 2 odoc tngaetrunthi 2 nkphthnaDojo Foundationwnthiepidtw khxphidphladniphcn epnxkkhraekhruxnghmaywrrkhtxnthiimruck minakhm ph s 2548 2005 03 3 khxphidphladniphcn mitwdaeninkar lt sungimkhwrmi khxphidphladniphcn mitwdaeninkar lt sungimkhwrmikxnrunesthiyr6 0 0 28 singhakhm ph s 2562 2019 08 28 1772 wnkxnthiekbkhxmulDojo Toolkit 1 x https github com dojo dojo Dojo Framework 2 https github com dojo frameworkphasathiekhiynDojo Tookit 1 x JavaScript Dojo gt 2 x rabbptibtikarkhamaephltfxrmpraephthJavaScript toolkit or syyaxnuyatThe hrux the 2 1 ewbisthttps dojotoolkit org https dojo io khwamsamarthekhruxngmuxinhnaewbephc Widgets Dojo widgets epnekhruxngmuxtanginhnaewbephc ekhiynepnokhdsaercrupodyich JavaScript HTML aela CSS snbsnunkarthanganbnhlayebrawesxrthiaephrhlayinpccubn chwyihewbephctxbotkbphuichidnasnic aelaphthnangaykhun twxyangkhxngekhruxngmuxin Dojo widgets echn Menu Tab aela Tooltips tarangprbkareriyngladbihmid aephnphaphaebbidnamik aela twchwyinkarsrangphaphewketxr kartha Effects tang echn fades wipes aela slides aelatwchwyinkarsrang effects aebbtang Tree thisnbsnunkar drag n drop aebbfxrm aela fngkchninkartrwcsxbkhwamthuktxngkhxngaebbfxrm Date selector Time selector inrupkhxngptithin aela nalika Rich Text Editorkarsuxsaraebbimtxenuxng Asynchronous communication hnunginkhwamsamarthhlkkhxng exaecks aexpphliekhchn khux karsuxsaraebbimtxenuxng Asynchronous communication khxng ebrawesxr kbthangfngesirfewxr klawkhux samarthsngthayaelaaesdngphlkhxmulipphrxmknodyimtxngriohldthnghnaihmhmd pktiaelwkarthaechnnicatxngeriykich XMLHttpRequest in JavaScript sunginaetlaebrawesxr camiwithikareriykichthiaetktangknxyuelknxy Dojo nakarcdkarphunthan eruxngekiywkbkhxphidphlad pyhakarichnganekiywkbpum yxnklb pyhainkarkhnhna Bookmark aelakhwamaetktangrahwangebrawesxr khxngkareriykich XMLHttpRequest rwmiheriykphan dojo io bind ehmuxnknthnghmdaethn sungsamarthprbihichwithixunnxkcak XMLHttpRequest iddwy echn kareriykphan IFrames thisxniwaethn rabbcdkaraephcekc Dojo mirabbkarcdkarepnaephcekc ephuxihsamarthaeykphthnaepnswnid odyskhriptswnhlkthahnathicdsphaphaewdlxmephuxetriymohldaephcekcthicaich odysrangenmsepstang echn io event lfx aelaxun iwitenmseps dojo hlngcaknnemuxtxngkarichaephcekcid khxyohldaephcekcnninrahwangkarthangankhunma echn phan XMLHttpRequest odyrabbcdkaraephcekcsamarthohldaephcekcxunnxkcak enmseps dojo id thaihsamarthephim hrux ilbrari Library xunkhxngeraexngiddwy aephcekchnungxacprakxbdwyiflediyw hruxhlayiflrwmkn aetlaiflhruxaephcekc samarthbxkkhwamtxngkarwatxngichiflhruxaephcekcidbanginkarthangan emuxthakarohld khxngthitxngkarthnghmdcathukohldtamipodyxtonmti aetewbebrawesxrmkimekbkhxmulcak XMLHttpRequest iwinaekhch tangcakifl JavaScript thrrmdathimkcathukekbiwesmx thaihkarxangaephcekctang txngthakarohldcakesirfewxrihmthukkhrng ephuxldpyhadngklawcungmikarsrangokhdaebbepn ophrifl Profiles khun odysamarthekhiynophriflraburaykaraephcekcthicaepn caknnich chwy ephuxrwmaephcekcehlaniepnifl JavaScript thibibxdaelwiflediyw sahrbophriflkarichnganthwipsamarthhadawnohld idinthiediywknkbthiihdawnohld Dojo chbbetm karekbkhxmulinfngphuich nxkcaksnbsnunkarthangankbrabbkhukkiaelw Dojo yngmirabbkarekbkhxmulinekhruxngphuichxyangxunthi eriykwa Dojo Storage dwy ody Dojo Storage samarththangankbhlayewbebrawesxrthiidrbkhwamniyminpccubn echn xinethxrentexksphlxerxr ifrfxks aela safari inkarthangan Dojo caeluxkwithikarekbkhxmulthiehmaasmthisudinaetlaebrawesxrexng echn in ifrfxks 2 caichrabbkarekbkhxmulkhxngebrawesxrexng Native browser persistence inebrawesxrxuncaich Flash applet ody Flash 6 nnthuktidtngmakkwa 95 khxngekhruxngkhxmphiwetxrthiichxinethxrentid thaihrabbkarekbkhxmulnisamarthichnganidkbewbaexpphliekhchnthixyuthangfngesxfewxrswnihy sahrbewbaexpphliekhchn thixyuphayinekhruxngkhxngphuichexng xyangechninsidisuxkarsxn hrux URL thikhundndwy file sahrb ifrfxks Dojo Storage caich aethn aelacaich aethnsahrb xinethxrentexksphlxerxr nkphthnasamarthichngan Dojo Storage inlksnaediywkbkarichtarangaehch hash table phankareriyk put aela get duephimexaecks cawaskhript XMLHttpRequestxangxingA Brief History of Dojo https dojo io blog https www typescriptlang org samples index html Dojo Toolkit License Dojo Toolkit subkhnemux 17 April 2017 aehlngkhxmulxundojotoolkit org xngkvs Dojo Project s JotSpot wiki 2007 01 28 thi ewyaebkaemchchin xngkvs Dojo Foundation 2007 01 05 thi ewyaebkaemchchin xngkvs Ajaxian com xngkvs