Script标签解析

news/2024/7/19 13:33:12 标签: JS

HTML4.01为Script定义了以下属性

async:表示异步下载脚本。只对外部脚本有效

defer:脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本有效,IE7及更早的版本对齐也支持该属性。

src:表示包含的外部脚本文件

type:表示编写代码使用的脚本语言类型(Mime类型),默认值为text/javascript

这里有几点要注意的:

1.带有src属性的script元素不应该在其标签之间再包含额外的JavaScript代码,因为它会被忽略。。

2.外部JavaScript可以包含任意后缀的文件,这样一来,使用ASP,PHP等后端语言动态生成JavaScript也成为了可能,服务器只要返回正确的Mime类型即可,以下是ASP.NET的服务器和前端代码:

<script src="RequestHandler.ashx?action=GetJS">
</script>
        public void GetJS(HttpContext context)
        {
            context.Response.ContentType = "text/javascript";
            context.Response.Write(@"function Hello()
            {
                alert(""hello world"");
            }");
        }

3.Src属性还能包含外部域的JavaScript文件。因此在访问自己控制的服务器上面的JavaScript文件时则要多加小心。

4.无论如何包含代码,只要不存在defer和async属性,浏览器都会按照<script>元素在页面中出现的先后顺序对他们依次解析。

 

按照惯例,所有<script>元素都应该放到<head>元素中,这种做法的目的是把所有的外部资源文件的引用放到相同的地方。可是在文档的<head>元素中包含所有的JavaScript文件,意味着必须等到全部JavaScript元素代码被下载,解析和执行完之后,才能开始呈现页面的内容(浏览器在遇到body标签时才开始呈现内容)。对于那些需要很多JavaScript代码的页面来说,这无疑会导致呈现页面时会出现明显的延迟,浏览器窗口会出现一片空白。为了解决这个问题,现代Web应用程序一般会把全部JavaScript引用放在<body>元素中的页面的内容后面。

延迟脚本

HTML4.01为<script>标签定义了defer属性。这个属性的用途是表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕后再运行。也就是说不管script元素放到哪里,它都会在浏览器遇到</html>标签后再执行。在现实当中,延迟脚本并不一定会按照顺序执行,因此最好一个页面只有一个延迟脚本

异步脚本

HTML5为<script>元素定义了async属性。标记为async 的脚本并不保证按照指定它们的先后顺序执行,因此要确保两个文件直接互不依赖。指定async属性的目的是不让页面等待两个脚本下载和执行,从而异步加载页面其他内容。为此,建议异步脚本不要在加载期间修改DOM。

 

想学习更多关于JavaScript方面的资料,在这里推荐《JavaScript高级程序设计》这一本书~

 


http://www.niftyadmin.cn/n/1740375.html

相关文章

exp oracle 空表,Oracle 11G在用EXP 导出时,空表不能导出解决

&#xff1a;该值设置后对以前导入的空表不产生作用&#xff0c;仍不能导出&#xff0c;只能对后面新增的表产生作用。如需导出之前的空表&#xff0c;只能用第1种方法或者下面的解决方法。二、解决方法&#xff1a;1、先查询一下当前用户下的所有空表select table_name from u…

秀出你的执行力

以下内容转载自《格局逆袭》执行力是指有效地利用资源&#xff0c; 保质保量地完成既定目标的能力。 这里面有两个维度的东西需要考虑&#xff0c; 第一是你现有的资源&#xff0c; 第二是可以最大限度地保质保量完成。 为什么要提到利用资源&#xff0c; 因为任何一件事情的执…

linux oracle ora-12162,oracle ORA-12162: TNS:net service name is incorrectly specified

本文将给大家阐述一个因未设置系统环境变量ORACLE_SID导致ORA-12162错误的案例。希望大家有所思考。1.获得有关ORA-12162报错信息的通用表述信息[oracleasdlabdb01 ~]$ oerr ora 1216212162, 00000, "TNS:net service name is incorrectly specified"// *Cause: The…

php商城如何安装,Magento2 php商城在windows10上安装

Magento2 php商城在windows10上安装,magento2下载地址:https://github.com/magento/magento2/archive/develop.zip参考地址: 版本要求 这个magento2 要选择好php的版本 下载综合版服务器时看好这个服务器支持的具体版本 下边的网站有具体的版本要求页,在此就不列出了https://…

成功其实比失败可怕多了

一家上市公司的首席执行官日前在微博上和我呛声&#xff0c; 虽然没上市之前他给大家讲的是如何在互联网拼爹时代找到自己的亲爹、 干爹和后爹&#xff0c; 但是上市之后&#xff0c; 就摇身一变成了他通过努力带领公司上市了。 其实上市没啥了不起的&#xff0c; 只是可以忽悠…

php接收表单数据显示php代码,php 表单数据的获取代码

复制代码代码如下:Form姓名&#xff1a;密码&#xff1a;密码确认&#xff1a;性别&#xff1a;男女生日&#xff1a;E-mail&#xff1a;职业&#xff1a;复制代码代码如下://本程序用于接收来自HTML页面的表单数据&#xff0c;并输出每个字段echo"用户的输入如下所示&…

.NET日志框架Log4Net小结

Log4net强大的地方就是它的多目标输出&#xff0c;可以输出到控制台、文件、数据库、系统事件、Email等&#xff0c;几乎无所不能。然后它可以通过配置让日志系统实时生效&#xff0c;比如说在服务运行的过程中修改配置改变输出目标&#xff0c;改变日志等级等&#xff0c;均不…

oracle错误码00933,Oracle:UPDATE语句导致ORA-00933错误(Oracle: UPDATE statement causes ORA-00933 error)...

Oracle&#xff1a;UPDATE语句导致ORA-00933错误(Oracle: UPDATE statement causes ORA-00933 error)任何人都可以看到这个陈述有什么问题吗&#xff1f; 我尝试了一段时间来修复它&#xff0c;但无济于事&#xff0c;我在网上发现的答案坚持我需要删除ORDERBY语句&#xff0c;…