รูปแบบสำหรับเว็บแอ็พพลิเคชัน ajax-heavy


12

จนถึงตอนนี้ฉันเป็นแฟนตัวยงของรูปแบบ MVC สำหรับการพัฒนาเว็บแอปพลิเคชัน สำหรับเว็บฉันได้พัฒนาส่วนใหญ่ใน PHP (ด้วยกรอบ Kohana และ CodeIgniter) และ Ruby (RoR)

เมื่อแอพพลิเคชั่นของฉันหนักกว่าด้านอาแจ็กซ์ (แอพพลิเคชั่นหน้าเดียว ฯลฯ ) ฉันสังเกตเห็นว่าฉันอดไม่ได้ที่จะทรยศต่อแนวคิดพื้นฐานที่สำคัญของ MVC: Javascript ทำงานส่วนใหญ่ การเรียกตัวควบคุมเพื่อขอดูหรือมากกว่ารหัส js / json ดูเหมือนผิด

หลังจากพยายามรักษางานการเราต์ทั้งหมดไว้ในคอนโทรลเลอร์ตอนนี้ฉันได้แยกมันระหว่างพวกเขาและ Javascript (นั่นคือจาก PoV ของเฟรมเวิร์กเป็นส่วนหนึ่งของมุมมอง) เมื่อขอ json การโค่นล้ม MVC ดูชัดเจนยิ่งขึ้น: รหัส js ที่ทำการร้องขอคือคอนโทรลเลอร์; คอนโทรลเลอร์ของเฟรมเวิร์กทำหน้าที่เป็นพร็อกซีสำหรับข้อมูลของโมเดลซึ่งเป็นสิ่งที่ฉันต้องการ

ดังนั้นฉันควรตรวจสอบอะไร

ฉันกำลังคิดเกี่ยวกับแอปพลิเคชัน pure-javascript เช่น backbone.js และฐานข้อมูล json-spitting (couchDB) ที่ใช้เอกสารเป็นแบ็กเอนด์ แต่ฉันรักฐานข้อมูลเชิงสัมพันธ์ของฉัน

ตัวเลือกอื่นจะเป็นดังต่อไปนี้: ฉันเพิ่งสร้าง "โมเดลที่กำหนดเส้นทาง" ใน PHP / ruby ​​/ go / whatnot ผู้ที่จะวิเคราะห์คำขอโทร db ให้กลับ json บาง

วิธีการนี้ดูน่าสนใจสำหรับฉัน แต่มันขาดเอกสารจำนวนมากหรือการวิเคราะห์เชิงวิชาการดังนั้นฉันกลัวการก้าวกระโดดเล็กน้อย

ไอเดีย?


คุณต้องการที่จะย้ายไปยังสิ่งที่ต้องการSocketstream ซึ่งได้รับการออกแบบตามเวลาจริงการใช้งานที่หนักหน่วงของลูกค้า
Raynos

2
อย่ากลัวการเปลี่ยนแปลง ฐานข้อมูลเชิงสัมพันธ์มีที่ของมัน แต่ถ้าโครงการของคุณไม่ได้เรียกหาฐานข้อมูลเชิงสัมพันธ์อย่าใช้มัน
beatgammit

คำตอบ:


1

หากไม่มีการวิเคราะห์ทางวิชาการให้ทำด้วยตัวเอง เพียงทดลองใช้ในโครงการขนาดเล็กครั้งต่อไปและดูว่าคุณชอบอย่างไร อ่านบทความของ Paul Graham เกี่ยวกับสาเหตุที่เขาเลือก Lisp สำหรับการเริ่มต้นของเขาแม้ว่าจะไม่ได้ใช้กันทั่วไป http://www.paulgraham.com/avg.html

มีกรอบจาวาสคริปต์ MVC มากมาย หากคุณต้องการสร้างแอปพลิเคชันจาวาสคริปต์เป็นหลักให้ทำ

เพียงแค่สร้าง API พักผ่อนใน Rails หรือเฟรมเวิร์กใดก็ตามที่คุณใช้ซึ่งเป็นเพียง wrapper สำหรับฐานข้อมูลและคุณไม่ต้องยอมแพ้กับฐานข้อมูลเชิงสัมพันธ์ เพียงเรียก api เช่นเดียวกับที่คุณจะเรียกฐานข้อมูลถ้านี่เป็นแอปพลิเคชันที่ใช้เซิร์ฟเวอร์

นอกจากนี้หากคุณสร้างแอปด้วยวิธีนี้คุณสามารถสร้างการสนับสนุนออฟไลน์ได้อย่างง่ายดาย


ฉันจะลองทำสิ่งนี้สำหรับโครงการต่อไปของฉัน สำหรับกรอบงานจาวาสคริปต์คุณแนะนำอะไร? สิ่งเดียวที่ฉันมองเข้าไปในตอนนี้คือกระดูกสันหลัง
cbrandolino

@cbrandolino backbone ดูดีจากระยะเวลาที่ จำกัด ฉันต้องเล่นกับมัน คุณอาจต้องการตรวจสอบsammyjs.orgสำหรับโครงการขนาดเล็ก
เซทอาร์เชอร์บราวน์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.