คำถามติดแท็ก decoupling

7
แนวทางปฏิบัติที่ดีที่สุดสำหรับการฝัง JSON โดยพลการใน DOM?
ฉันกำลังคิดเกี่ยวกับการฝัง JSON โดยพลการใน DOM ดังนี้: <script type="application/json" id="stuff"> { "unicorns": "awesome", "abc": [1, 2, 3] } </script> ซึ่งคล้ายกับวิธีที่เราอาจจัดเก็บเทมเพลต HTML ที่กำหนดเองใน DOM เพื่อใช้กับเอ็นจินเทมเพลต JavaScript ในภายหลัง ในกรณีนี้เราสามารถดึง JSON และแยกวิเคราะห์ได้ในภายหลังด้วย: var stuff = JSON.parse(document.getElementById('stuff').innerHTML); วิธีนี้ได้ผลแต่เป็นวิธีที่ดีที่สุดหรือไม่? สิ่งนี้ละเมิดแนวทางปฏิบัติหรือมาตรฐานที่ดีที่สุดหรือไม่ หมายเหตุ: ฉันไม่ได้มองหาทางเลือกอื่นในการจัดเก็บ JSON ใน DOM ฉันตัดสินใจแล้วว่าเป็นทางออกที่ดีที่สุดสำหรับปัญหาเฉพาะที่ฉันมี ฉันแค่มองหาวิธีที่ดีที่สุดที่จะทำ

3
ฉันควรใช้เมธอด“ then” ของ jQuery deferred เมื่อไรและควรใช้เมธอด“ pipe” เมื่อใด
jQuery Deferredมีสองฟังก์ชั่นที่สามารถใช้เพื่อปรับใช้ฟังก์ชัน Chaining แบบอะซิงโครนัส: then() deferred.then( doneCallbacks, failCallbacks ) Returns: Deferred doneCallbacksฟังก์ชันหรืออาร์เรย์ของฟังก์ชันที่เรียกเมื่อ Deferred ได้รับการแก้ไข failCallbacksฟังก์ชันหรืออาร์เรย์ของฟังก์ชันที่เรียกว่าเมื่อ Deferred ถูกปฏิเสธ pipe() deferred.pipe( [doneFilter] [, failFilter] ) Returns: Promise doneFilterฟังก์ชันทางเลือกที่ถูกเรียกใช้เมื่อ Deferred ได้รับการแก้ไข failFilterฟังก์ชันทางเลือกที่ถูกเรียกใช้เมื่อ Deferred ถูกปฏิเสธ ฉันรู้ว่าthen()ใช้เวลานานกว่าเล็กน้อยpipe()ดังนั้นอย่างหลังจึงต้องเพิ่มผลประโยชน์พิเศษบางอย่าง แต่สิ่งที่แตกต่างอย่างชัดเจนก็ทำให้ฉันหายไป ทั้งสองใช้พารามิเตอร์การเรียกกลับที่เหมือนกันแม้ว่าจะแตกต่างกันในชื่อและความแตกต่างระหว่างการส่งคืน a Deferredและส่งคืนPromiseดูเหมือนเล็กน้อย ฉันอ่านเอกสารอย่างเป็นทางการซ้ำแล้วซ้ำเล่า แต่มักจะพบว่ามัน "หนาแน่น" เกินไปที่จะคาดคั้นเอาไว้และการค้นหาก็พบว่ามีการอภิปรายเกี่ยวกับคุณลักษณะหนึ่งหรืออย่างอื่นมากมาย แต่ฉันไม่พบสิ่งใดที่ให้ความกระจ่างในความแตกต่าง ข้อดีข้อเสียของแต่ละข้อ ดังนั้นควรใช้thenเมื่อใดและควรใช้เมื่อpipeใด ส่วนที่เพิ่มเข้าไป คำตอบที่ยอดเยี่ยมของเฟลิกซ์ช่วยชี้แจงว่าฟังก์ชันทั้งสองนี้แตกต่างกันอย่างไร แต่ฉันสงสัยว่ามีบางครั้งที่การทำงานthen()ของpipe(). เห็นได้ชัดว่าpipe()มีพลังมากกว่าthen()และดูเหมือนว่าอดีตสามารถทำอะไรก็ได้ที่คนหลังทำได้ เหตุผลหนึ่งที่ต้องใช้then()อาจเป็นเพราะชื่อนี้สะท้อนให้เห็นถึงบทบาทของมันในขณะที่การสิ้นสุดของสายการทำงานที่ประมวลผลข้อมูลเดียวกัน แต่มีกรณีการใช้งานที่ต้องthen()ส่งคืนต้นฉบับDeferredที่ไม่สามารถทำได้pipe()เนื่องจากส่งคืนใหม่Promiseหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.