浏览器如何支持JavaScript
这个问题的第一部分实际上是基于我整个下午所做的以JavaScript为中心的研究的确认请求。如果我对这些项目有任何错误,请纠正我浏览器如何支持JavaScript,javascript,browser,Javascript,Browser,这个问题的第一部分实际上是基于我整个下午所做的以JavaScript为中心的研究的确认请求。如果我对这些项目有任何错误,请纠正我 是“维护”JavaScript的官方标准机构 任何希望支持JavaScript的浏览器(所有/大多数浏览器都支持JavaScript),必须在浏览器代码的深处包含某种解释器(它是什么?)引擎 当有人将启用JavaScript的浏览器指向包含JavaScript代码的URI时,该浏览器将下载JS文件以及HTML、CSS等,并通过该解释器运行JS,结果输出将影响最终呈现
- 是“维护”JavaScript的官方标准机构
- 任何希望支持JavaScript的浏览器(所有/大多数浏览器都支持JavaScript),必须在浏览器代码的深处包含某种解释器(它是什么?)引擎
- 当有人将启用JavaScript的浏览器指向包含JavaScript代码的URI时,该浏览器将下载JS文件以及HTML、CSS等,并通过该解释器运行JS,结果输出将影响最终呈现页面的方式
- ECMA是执行JS“标准”的标准机构。他们保持语言的一致性并记录在案(尽管知道它的历史,但他们作为“标准机构”的工作做得并不好)
- JavaScript引擎是嵌入到浏览器中用于解析JavaScript源代码的软件。它将JavaScript转换为屏幕上(和屏幕下)的操作。例如V8(Chrome)、TraceMonkey(Firefox)、Chakra(IE)、Carakan(Opera)和Nitro/松鼠鱼(safari)
- 在执行上述操作之前,必须将JavaScript代码引入要解析的浏览器(通常使用
标记) - JavaScript插件/工具包只是程序员开发的代码,可以轻松地完成任务。他们只是做一些你通常会编码1000行的事情。这些代码还通过提供跨浏览器的一致性来“改进”编程。插件/工具包的例子有jQuery(以及它的UI插件jQueryUI)、YUI、Dojo等等
- 另一方面,浏览器扩展/插件“扩展”了浏览器的功能。例如ADBlock(它阻止页面广告)、FlashGet(在页面上下载flash文件)。这些人被编程到浏览器中,而不是页面中。然而,最近,这些扩展是由JavaScript支持的,因为它很容易编程
- ECMA是执行JS“标准”的标准机构。他们保持语言的一致性并记录在案(尽管知道它的历史,但他们作为“标准机构”的工作做得并不好)
- JavaScript引擎是嵌入到浏览器中用于解析JavaScript源代码的软件。它将JavaScript转换为屏幕上(和屏幕下)的操作。例如V8(Chrome)、TraceMonkey(Firefox)、Chakra(IE)、Carakan(Opera)和Nitro/松鼠鱼(safari)
- 在执行上述操作之前,必须将JavaScript代码引入要解析的浏览器(通常使用
标记) - JavaScript插件/工具包只是程序员开发的代码,可以轻松地完成任务。他们只是做一些你通常会编码1000行的事情。这些代码还通过提供跨浏览器的一致性来“改进”编程。插件/工具包的例子有jQuery(以及它的UI插件jQueryUI)、YUI、Dojo等等
- 另一方面,浏览器扩展/插件“扩展”了浏览器的功能。例如ADBlock(它阻止页面广告)、FlashGet(在页面上下载flash文件)。这些人被编程到浏览器中,而不是页面中。然而,最近,这些扩展是由JavaScript支持的,因为它很容易编程
- ECMA是为JavaScript实现的ECMAScript设置标准的官方标准机构。ActionScript也是如此。ECMAScript涵盖了该语言的所有编程要点和基本结构
- ECMA规范不包括面向浏览器的API,如DOM。W3CDOM标准涵盖了这一点,该标准旨在定义与语言无关的API。IE从IE6开始就相当坚定地支持ECMA规范,而在IE9之前,IE几乎完全忽略了DOM内容,支持自己的专有BS
- 规范本身只是一系列关于语言如何工作的规则。只要您编写了相同的内容,并且给定浏览器的解释器给出了规范定义的预期结果,它就符合所考虑的任何版本
- 解释器解析并标记您编写的实际文本,并将其转换为浏览器运行时环境读取的指令。现代浏览器使用实际的JIT编译器,在执行JS时将其转换为字节码,这样浏览器运行时环境本身就不需要翻译
- 大多数浏览器缓存js文件的实际二进制文件。因此,当一个新页面链接到同一服务器位置时,同一域中链接到同一服务器位置的页面不必下载同一文件两次。这与任何资源(图像、css文件等)都是一样的,我不相信它们会缓存任何向下解释的结果,但我认为在JIT的情况下,某些预执行例程(基本上是JIT预处理)的结果可能会保存在内存中(我这方面纯粹是猜测,但似乎有点无聊)
- 在使用插件、框架、工具、库等词汇方面,我们的语言有点快,有点松。。。通常都是JavaScript。你可以像其他JS一样,通过链接文件或剪切粘贴到现有文件中来“插入”。然而,对于插件,人们通常意味着它可以与一些现有的pre-fab JS一起使用,比如JQuery,它倾向于通过向对象添加方法来扩展