เฟรมเวิร์กใดที่ดีที่สุดในการติดตั้งแอปพลิเคชั่นอย่างมีประสิทธิภาพโดยใช้ ArcGIS Server JS API


13

เหนือฟอรัม Esriผู้ใช้ Matt Moyles แนะนำว่าวิธีการที่ใช้ในตัวอย่าง Esri JS ไม่เหมาะสำหรับการพัฒนาแอปพลิเคชันการทำแผนที่เว็บอย่างมีประสิทธิภาพโดยใช้ HTML, JavaScript และ CSS:

แนวทางที่แนะนำของ ESRI ในการพัฒนาแอปพลิเคชันจาวาสคริปต์นั้นเก่าและล้าสมัยแล้ว ฉันจะไม่แนะนำต่อไปนี้ตัวอย่าง Dojo 1.7 รองรับ AMD พร้อมการโหลดการพึ่งพาแบบไม่ซิงค์ ฉันจะเริ่มต้นด้วยเทมเพลตสำเร็จรูปของ dojo และ "ทำงาน" arcgis api ลงไป ตัวอย่างไม่เหมาะสำหรับนักพัฒนาแอปพลิเคชันที่ร้ายแรง พวกมันส่วนใหญ่เป็นเพียงหลักฐานของตัวอย่างแนวคิด

ควรพัฒนาแอพพลิเคชั่นที่จริงจังด้วยความช่วยเหลือของกรอบบางอย่างเพื่อช่วยโครงสร้างสิ่งต่างๆ ฉันใช้ dojox.mvc ด้วยความสำเร็จอย่างมาก! แต่ตัวเลือกอื่น ๆ รวมถึงสิ่งต่าง ๆ เช่น backbone.js, spine.js หรือแม้แต่ javascript MVC

Dojo Boilerplate - https://github.com/csnover/dojo-boilerplate

  • ไม่มีใครเห็นด้วย / ไม่เห็นด้วยกับคำสั่งนี้?
  • มีตัวอย่างออนไลน์ของแนวทางที่ดีกว่าในการพัฒนาเว็บแอปพลิเคชันโดยใช้ ArcGIS Server JS API หรือไม่

1
ใช่ dojo 1.7 ใช้ AMD แต่ esri js api ล่าสุดสร้างขึ้นบน dojo 1.6.1 และเลเยอร์แพ็กเกจ / โมดูลที่พวกเขาให้บริการหรือคุณสามารถดาวน์โหลดไม่ได้อยู่ในรูปแบบของ AMD ดังนั้นมันจะไม่ทำงาน ดูเหมือนว่าโง่ที่จะโหลด js api (dojo 1.6.1) และ dojo 1.7 เพื่อใช้ AMD
— Steve

ฉันเพิ่งสังเกตเห็นว่ามีเซสชั่นเกี่ยวกับ backbone.jsในการประชุมสุดยอด Esri Developer Summit ในปีนี้
— สตีเฟ่นนำ

ฉันพบปัญหาในการใช้แผ่นเหล็กโดโจล่าสุด ฉันกลับไปที่แพคเกจแผ่นเหล็ก 1.6.1 เพราะนั่นคือสิ่งที่สนับสนุน ESRI ESRI จะตรวจสอบ API เวอร์ชัน API ของตนวางจำหน่ายสำหรับ dojo 2.0 นี่คือโครงการสำเร็จรูปที่ฉันใช้blog.rebeccamurphey.com/a-dojo-boilerplate (Matt Moyles)
— dubvfan87

คำตอบ:


10

ฉันเห็นด้วยกับ Moyles ว่าตัวอย่างเป็นเพียงตัวอย่างและ dojo boileplate เป็นแหล่งข้อมูลที่ดี แต่ที่ snovers สำเร็จรูปในปัจจุบันไม่ได้เป็นทางออกที่ดี คุณมีโดโจสองรุ่นที่ต่างกันเกิดขึ้นที่นั่น js api ปัจจุบันยังคงใช้คลาสสิกที่ต้องการไวยากรณ์ของ dojo 1.6.1 และไม่รองรับ AMD ฉันแน่ใจว่า js api ที่ใหม่กว่าจะถูกสร้างขึ้นบน 1.7.x และเนื่องจากการแปลงโมดูล dojo.defined แบบคลาสสิกเป็น AMD นั้นเป็นเรื่องเล็กน้อยฉันจะเลือกเส้นทางนั้น

หากคุณเริ่มโครงการของคุณตอนนี้ฉันจะเลือกเฟรมเวิร์กฝั่งเซิร์ฟเวอร์ที่คุณต้องการใช้ (ถ้าจำเป็นสำหรับแอปพลิเคชันของคุณหากเป็นเพียงวิวเวอร์เพจเดียวที่ไม่มีข้อกำหนดด้านเซิร์ฟเวอร์ อาจเป็นทางรถไฟ php asp อะไรก็ได้ ปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดสำหรับกรอบ / ภาษาของคุณ

จากนั้นเนื่องจาก esri สร้างขึ้นบน dojo คุณจึงโหลดเฟรมเวิร์ก js ที่ยอดเยี่ยมสำหรับการสร้างเว็บแอปพลิเคชันขนาดใหญ่ จัดโครงสร้างโค้ดของคุณเพื่อให้ตัวโหลดของ dojo สามารถโหลดวิดเจ็ตและโมดูลของคุณด้วย dojo ต้องการไวยากรณ์ เขียนวิดเจ็ตและโมดูล dojo ใช้เครื่องมือ dijits และ dojox เมื่อจำเป็น ( http://dojotoolkit.org/documentation/tutorials/1.6/declare , http://dojotoolkit.org/documentation/tutorials/1.6/recipes/custom_widget/ , http : //dojotoolkit.org/documentation/tutorials/1.6/understanding_widget , http://dojotoolkit.org/documentation/tutorials/1.6/templated , http://dojotoolkit.org/documentation/tutorials/1.6/cdn ) อย่าเขียน inline js เหมือนตัวอย่างที่ทำ สร้างสร้างโปรไฟล์เพื่อปรับรหัสทั้งหมดให้เหมาะสมเมื่อถึงเวลาผลิต

คุณต้องแยก ESRI และรหัสที่กำหนดเองให้อยู่ในระดับหนึ่งเพราะพวกเขาไม่ได้เสนอแหล่งที่มาสำหรับการรวบรวม - มันถูกสร้างขึ้นและย่อขนาด เครื่องมือสร้างไม่ชอบสิ่งนั้นมากนัก

แก้ไข

ฉันสร้างเครื่องมือที่น่ากลัว esri_slurpเพื่อดาวน์โหลดesri js api เพื่อให้คุณสามารถใช้เป็นแพ็คเกจในแอปพลิเคชันของคุณ สิ่งนี้อนุญาตให้คุณรันบิลด์และรับไฟล์เดียว


3

ควรเห็นได้ชัดว่าตัวอย่างไม่ได้หมายถึงแอปพลิเคชันที่ร้ายแรง: เป็นตัวอย่าง

ในโลกอินเทอร์เน็ตทั่วไปนั้นไม่ค่อยมีอะไรที่จะใช้Backboneมากกว่าการใช้ dojo ซึ่งเป็นที่รู้กันว่ากว้างขวางและซับซ้อน แต่มักไม่จำเป็น

หากคุณสามารถอธิบายวัตถุประสงค์ของคุณได้มากขึ้นมันจะเป็นการง่ายกว่าที่จะให้คำแนะนำที่ชัดเจน สิ่งต่าง ๆ เช่น Backbone นั้นเขียนขึ้นสำหรับแอปพลิเคชันฝั่งไคลเอ็นต์ - ดังนั้นถ้าคุณทำงานส่วนใหญ่ใน PHP หรือ ASP หรือ nodejs จริง ๆ แล้วมันไม่จำเป็น หรือถ้าคุณไม่ต้องการหลายเพจและดูการเชื่อมต่อทั้งหมดคุณสามารถทำได้ง่ายๆด้วย jQuery หรือไม่มีกรอบเลย


1
หากรหัส esri ถูกสร้างขึ้นที่ด้านบนของ dojo เหตุใดคุณจึงต้องใช้สิ่งอื่นนอกเหนือจาก dojo Dojo สามารถทำทุกสิ่งที่กระดูกสันหลังและ jquery คุณกำลังโหลดเฟรมเวิร์กที่มีความสามารถมากแล้วทำไมคุณถึงแนะนำให้โหลดเฟรมเวิร์กอื่น
— Steve

พอยุติธรรม @tmcw ว่าเครื่องมือที่ระบุตัวอย่างไม่ควรที่จะใช้ในการพัฒนาแอพลิเคชัน - แต่สิ่งที่เกี่ยวกับความสมบูรณ์มากขึ้นตัวอย่าง ArcGIS.com ตาม ? Esri ผิดทางกับสิ่งเหล่านี้หรือไม่?
— สตีเฟ่นนำ

@tmcw สำหรับวัตถุประสงค์ของฉันนี่คือตัวอย่างของเว็บไซต์ที่ฉันทำงานโดยใช้วิธีการของ Esri Dojo ถ้าฉันจะเริ่มต้นใหม่อีกครั้งพรุ่งนี้ฉันควรทำมันต่างออกไปไหม
— สตีเฟ่นนำ

2
@ Steve ใช่มีการบันทึกคำพูดที่นี่หากคุณสนใจ
— สตีเฟ่นนำ

1
@StephenLead ฉันอยู่ที่นั่น :)
— Steve

-3

เห็นด้วยอย่างสิ้นเชิง. ESRI เป็น javascript api ฉันรู้สึกว่าพวกเขากำลังแข่งขันกับ ArcGIS Viewer for Flex ตัวอย่างไม่มีอะไร แต่เป็นเพียงหลักฐานของแนวคิดที่ว่าคุณจะสามารถใช้ dijits ได้อย่างไร ... ฉันหวังว่าพวกเขาจะให้บริการจาวาสคริปต์ API แบบบริสุทธิ์และให้ผู้ใช้ตัดสินใจว่าเฟรมเวิร์กใดที่คนทั่วไปใช้เช่น Bing, Google, Openlayers และอื่น ๆ ..


-4

jsRevolution ซึ่งเป็นเฟรมเวิร์ก JavaScript และเครื่องมือสร้างใหม่ของ OmniStation เป็นเฟรมเวิร์กเชิงพาณิชย์ที่มีประสิทธิภาพที่สุดในตลาด มันถูกออกแบบมาสำหรับการปรับใช้ขนาดใหญ่ของแอพพลิเคชั่นที่ไม่สำคัญ ฉันเป็นตัวแทนของ OmniStation ลูกค้าของเราอาจมีชั้นเรียน 100 หรือ 1,000 ชั้นผู้พัฒนา 10 คนหรือ 100 คน ในขณะที่ลูกค้าเหล่านี้จะพบกรอบที่ขาดไม่ได้ jsRevolution เป็นประโยชน์สำหรับการใช้งานบางอย่างที่มีน้อยถึง 25 ชั้นเรียน

คุณสมบัติหลายอย่างของ jsRevolution ประกอบด้วย: Asynchronous Loading, Codeless Namespacing, URL Switchable Code View (จาก Dev to Deploy), Codeless Inheritance พร้อมการตรวจสอบความถูกต้องของเวลาทำงาน, Codeless Interface กับการตรวจสอบความเร็วในการโหลด, Abeless เพื่อระบุทรัพยากรเป็นคลาสอินสแตนซ์, Multi-Versioning (คลาสหลายเวอร์ชันภายในแอพพลิเคชั่นเดียวกัน - ง่ายต่อการดำเนินการ) และคุณสมบัติอื่น ๆ อีกมากมาย


สวัสดี Ryan ยินดีต้อนรับสู่เว็บไซต์ของเรา! ฉันได้ทำการแก้ไขเล็กน้อยสำหรับคำตอบของคุณเพื่อให้สอดคล้องกับนโยบายของเราเกี่ยวกับโพสต์เชิงพาณิชย์ สำหรับข้อมูลเพิ่มเติมโปรดปรึกษาของเราคำถามที่พบบ่อย หากคุณต้องการให้ผู้อื่นติดต่อคุณคุณอาจใช้โปรไฟล์ผู้ใช้ของคุณเพื่อนำเสนอข้อมูลการติดต่อ
— whuber

1
คุณมีลิงค์ของเว็บไซต์แผนที่ ArcGIS JS API ที่ใช้เทคโนโลยีของคุณหรือไม่? มิฉะนั้นคำตอบนี้รู้สึกเหมือนสแปมมากเกินไป
— Devdatta Tengshe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.