Google Blink (WebKit fork ใหม่): ความหมายของ“ การย้าย DOM เข้าสู่ Javascript” หรือไม่


12

จากบล็อกกะพริบตา :

ในที่สุดเราต้องการสำรวจแนวคิดที่กว้างขึ้นเช่นการย้าย Document Object Model (DOM) ทั้งหมดไปยัง JavaScript

สิ่งนี้หมายความว่า? หมายความว่า DOM ของ WebKit ไม่ได้เข้ารหัสใน JavaScript แต่เป็นภาษาอื่นบ้างไหม หมายความว่าพวกเขาต้องการเปิดเผย accessors สาธารณะเพิ่มเติมให้ DOM หรือไม่ หรืออะไร?

คำตอบ:


14

วิธีที่ฉันอ่านมีสองตัวเลือก แต่ก่อนที่เราจะพิจารณาเรื่องนี้คุณต้องเข้าใจว่าแบบจำลองเก่าทำงานอย่างไร

โดยส่วนใหญ่แล้วหากไม่ใช่การนำไปใช้ของเอ็นจิ้นการเรนเดอร์ HTML ทั้งหมด DOM จะถูกนำไปใช้ใน C หรือ C ++ และเอ็นจิ้น JavaScript เป็นแอดออนที่มีการเชื่อมโยงกับการส่งออกไปยัง DOM เรื่องนี้สมเหตุสมผลถ้าคุณดูว่า HTML และ JavaScript มีวิวัฒนาการอย่างไร แต่เสียเวลามากในการจัดการสายจาก JavaScript ไปยัง C / C ++ และย้อนกลับ

ตัวเลือกแรกคือ DOM จะผูกพันกับเอ็นจิน JavaScript มากขึ้น โดยทั่วไปแล้ววัตถุ DOM จะกลายเป็นวัตถุ JavaScript หลักเช่น Array สิ่งนี้ไม่ได้ทำอะไรมากยกเว้นการลด marshaling บางส่วนเนื่องจาก DOM ใช้ชนิดข้อมูลเนทิฟจากเอ็นจิน JavaScript DOM นั้นยังคงถูกนำไปใช้ใน C หรือ C ++

ตัวเลือกที่สองและอาจหมายถึงคือ DOM ที่ใช้จริงใน JavaScript ข้อเสียคือการเข้าถึง DOM นั้นถูกตีความอย่างสมบูรณ์ แต่ในทางกลับกันมันก็จะลบการจัดการ นี่อาจเป็นกำไรสุทธิเนื่องจาก DOM เป็นข้อมูลส่วนใหญ่

จากนั้นอีกครั้งฉันไม่สามารถให้คำตอบที่แน่นอนได้ - ฉันไม่ได้ทำงานให้กับ Google ดังนั้นจึงไม่มีข้อมูลเชิงลึกมากนัก


1
ฉันไม่คิดว่าจะมีค่าใช้จ่ายในการผูกประเภทพิเศษใด ๆ เมื่อเทียบกับเครื่องมือ "native" ของ JavaScript เนื่องจากเอ็นจิ้นนั้นเขียนใน C ++ และทุกประเภทจะถูกนำไปใช้โดยใช้กลไกเดียวกัน สิ่งที่สามารถบันทึกได้โดยใช้ประเภท JavaScript ดั้งเดิมคือรหัสเนื่องจากต้องมีรหัสจำนวนมากต้องทำซ้ำสำหรับประเภทเนทีฟและประเภท DOM
Jan Hudec

จากสิ่งที่ฉันรู้ (ตัวอย่างเช่นจากรายชื่อผู้รับจดหมาย es) หารือกันอย่างแน่นอน มีความปรารถนาที่จะมี DOM เขียนใน JS คือไม่เพียงเพราะการจัดสรรค่าใช้จ่าย (ซึ่งเป็นมี) แต่ยังสำหรับการลบเท่าของ "แปลกใหม่", "ที่ไม่ใช่เจ้าของภาษา" วัตถุ "พิเศษ" จากอวกาศภาษาที่ เป็นไปได้ DOM เป็น PITA ที่ยิ่งใหญ่สำหรับนักออกแบบภาษาเพราะมันพิเศษ
herby

มีเอกสารการออกแบบในหัวข้อนี้เมื่อเร็ว ๆ นี้docs.google.com/document/d/…
Subbul
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.