你好:我知道DOM API是与语言无关的,那么在浏览器端用javascript调用DOM API时:
问题1:这些API使用什么语言实现的呢?
问题2:javascript语言在浏览器端执行时肯定是脚本解释器解释执行的,可是这些DOM API是有什么解释执行的呢?
问题3:DOM解析器在这个过程中又扮演什么角色呢?

解决方案 »

  1.   

    问题1:这些API使用什么语言实现的呢? 
    C
    问题2:javascript语言在浏览器端执行时肯定是脚本解释器解释执行的,可是这些DOM API是有什么解释执行的呢? 
    浏览器的解释引擎
    问题3:DOM解析器在这个过程中又扮演什么角色呢?
    解释并呈现
      

  2.   

    问题1:浏览器解释引擎和我所说的脚本解释器是同一个吗?
    不是一个,脚本解释器是专门的,只不过浏览器需要这么一个引擎来解释脚本问题2:既然是用C实现的,那么浏览器的解释引擎怎么能够解释执行呢?
    为什么汉有解释?
    浏览器发送请求 -> 得到html代码 ->将脚本部分分出来,交给脚本解释器,得到解释结果,根据结果进行呈现,其它的标签正常能过自己的引擎来解析并呈现.
      

  3.   

    比如 firefox的脚本解释引擎为spiderMonkey,浏览器内核引擎为gecko,
    IE用MS自己开发的内核
      

  4.   

    我是说那些用C实现的DOM API也是脚本解释器解释执行的吗?
    比如:document.getElementbyid()这个getElementbyid()应该就是DOM API了,那么它既然是用C实现的就不是脚本语言了,这样的话脚本解释器怎么能够解释执行它呢?
      

  5.   


    为什么不是脚本语言了, 就好像window media player控件一样,他会给你一些方法和属性让你用,但他本身是被封装成dll的
    你能说我使用这些方法和属性,就不是脚本语言了?
    脚本也是有规范的,你必须按照他的规范来写,不然没有规范他怎么解释?
      

  6.   

    我觉得我好像没问说清楚。
    document.getElementbyid()我是说当脚本解释器解释道这句话的时候,碰到getElementbyid()这个函数它是怎么解释执行的,如果说这个函数是用javascript封装的,那脚本解释器就肯定就认识了,问题是这个函数是用C封装的,也就是说解释器执行到此处的时候碰到的是用过C语言写的代码。它怎么还能认识呢?就是这一点我有点不明白
      

  7.   

    “DOM提供的API是与平台和语言无关的”这句话又怎么去理解呢?
      

  8.   

    IE的API 基本上是C或者C++ FireFox是C在IE里面API是用COM提供给js调用的 任何js要求有一个宿主环境 对js来说 DOM是宿主环境的一部分 由COM得到的DOM函数和对象被封装成JS对象 它们可以像js对象和函数一样使用。
      

  9.   

    应该这样理解:
    1、DOM是文档对象模型,大概就是先取文档对象、文档节点、节点属性和节点值。可以通过不同的方式获取(各语言实现来决定),在js+html+css中可通过id、属性、class等等方式获取。
    2、可以用不同的语言去实现它,如java中解析xml的技术有jdom和sax,而xml属于文档对象模型之一。js中当然也实现了。
    3、DOM是一个抽象的概念或接口。很多语言都可以将其实现,只要有必要。所以就DOM本身来说,它是W3C制定的一个规范,它本身与各种平台或语言是无关的。
      

  10.   

    感觉13楼的解释的不错,但还是有点模糊,支持!!!给分
    DOM提供的API是与平台和语言无关的  可以用不同的语言来实现-----------有什么好处呢?
      

  11.   

    dead_of_winter解释的很好。
    有些东西事缓则圆,建议楼主可以少一些执着,多一些通达。
      

  12.   

    我知道DOM API是与语言无关的,那么在浏览器端用javascript调用DOM API时: 
    问题1:这些API使用什么语言实现的呢?   //不同浏览器的就不一样,但都以c/c++为主,用什么语言不重要,关键是对javascript提供了调用接口问题2:javascript语言在浏览器端执行时肯定是脚本解释器解释执行的,可是这些DOM API是有什么解释执行的呢? 
    //脚本调api,那些方法预先已经加载到内存,脚本直接调就可以了
    问题3:DOM解析器在这个过程中又扮演什么角色呢?//calle 
      

  13.   

    xml的DOM解析引擎是什么实现原理呢?大概依赖于什么算法和数据结构?搜索方式呢?  根本上是字符解析吧?
      

  14.   

    我知道DOM API是与语言无关的,那么在浏览器端用javascript调用DOM API时:
    问题1:这些API使用什么语言实现的呢?
    re:
    看浏览器的开发语言问题2:javascript语言在浏览器端执行时肯定是脚本解释器解释执行的,可是这些DOM API是有什么解释执行的呢?
    re:
    我想应该是浏览器的引擎:Names of Browser Engines
    Firefox, Mozilla   Gecko   SpiderMonkey
    Internet Explorer 4…7  Trident  jscript
    Mac IE 5  Tasman  jscript
    Opera 7…9.2  Presto  linear_b
    Opera 9.5  Presto Core 2  futhark
    Konqueror  KHTML  KJS
    Safari  WebKit  JavaScriptCore 问题3:DOM解析器在这个过程中又扮演什么角色呢?
    re:
    接口
      

  15.   

    http://hsivonen.iki.fi/engines/
      

  16.   

    所有的API及规范都是接口的设计理念!正因如此所以各个浏览器厂商对api的实现不径相同.浏览器对CSS及javascript的解析我记得书上说是浏览器的引擎
      

  17.   

    上面的高手都说的很多了,如果你深入,还可以查看浏览器的源代码,Mozilla Firefox,Chrome等是开源的浏览器
      

  18.   

    JavaScript引擎只是ECMAScript的一个实现,不同的浏览器会有不同的版本,楼上都有提到过。ECMAScript属于脚本语言,它用来操作、自定义、自动化现有系统中的设备。在这些系统中,一些可用的功能已经可以通过用户接口来使用,而脚本语言就是将这些功能暴露给程序控制的机制。这样,就可以说,现有系统提供了一个运行脚本语言完整功能需要的对象和设备的宿主环境。网页浏览器就为ECMAScript提供了一个宿主环境。如#13 winter所说那样。
      

  19.   

        同学,这个DOM你可以理解成一个规范,不管什么语言它都要按照规范来,比如用JS有个叫getElementbyid()的调用,它是来达到莫中目的的,而你用其它语言也要有实现这个目的的调用功能,这个功能的名字可能也是有一定规范的,比如实现这个目的必须用getElementbyid关键字(这里只是打个比方)。而你想知道其它语言是怎么知道要做什么的,这个就要系即到《编译原理》这门学问了,这里就是对符合DOM规范的文本进行编译或解释然后做出相应反应,之所以js能认识识别一个功能调用而C语言也能知道怎么实现,是因为处理这个功能时不是一个编译器来做的,如果你用JS写那么浏览器就调用JS的编译器或解释器来翻译你代码的意思,而如果你用其它语言写浏览器就会调用其相应的编译器来翻译你的代码,但终究这些编译器为什么能理解你的意思是因为发明人规定了一个协议,不管什么编译器在WEB上执行都得这么去翻译你的代码,难道你没发现你写JS时要写上这么一句“<script language="javascript">”?这就告诉浏览器“我用的是JS代码,请你用JS解释器来翻译我的意思!”
       好了,明白了给我分,我拿来下载文件啊。还有想了解详情请搜索《编译原理》这本书。