网页html如何加载页面,加载代码html顺序 浏

html-css016

网页html如何加载页面,加载代码html顺序 浏,第1张

从上到下运行,先解析head标签中的代码,

(1)head标签中会包含一些引用外部文件的代码,从开始运行就会下载这些被引用的外部文件

当遇到script标签的时候

浏览器暂停解析(不是暂停下载),将控制权交给JavaScript引擎(解释器)

如果<script>标签引用了外部脚本,就下载该脚本,否则就直接执行,执行完毕后将控制权交给浏览器渲染引擎

(2)当head中代码解析完毕,会开始解析body中的代码

如果此时head中引用的外部文件没有下载完,将会继续下载

浏览器解析body代码中的元素,会按照head中声明一部分样式去解析

如果此时遇到body标签中的<script>,同样会将控制权交给JavaScript引擎来解析JavaScript

解析完毕后将控制权交还给浏览器渲染引擎。

当body中的代码全部执行完毕、并且整个页面的css样式加载完毕后,css会重新渲染整个页面的html元素。

(3)按照之前的描述,<script>写到body标签内靠后比较好,

因为JavaScript 会操作html元素, 如果在body加载完之前写JavaScript 会造成JavaScript 找不到页面元素

但是我们经常将<script>写到head中,body中不会有大量的js代码,body中的html代码结构会比较清晰

window.onload: 等待页面中的所有内容加载完毕之后才会执行

$(document).ready(): 页面中所有DOM结构绘制完毕之后就能够执行

可以这样理解:window.onload 和 $(document).ready()/$(function(){})相当于 写在body 内 最靠后的<script>代码段

降低页面的比重

1去除不必要的空白和注释, 将inline的script和css放到外部文件中。 HTML Tidy这个工具可以用来自动的去除空白。还有一些其他的工具能够压缩javascript代码,比如将比较长的标志符换成短的,通过这种方式,尽量的减少页面的比重。

减少文件的数量

将少一个webpage被加载时所需要的下载的文件数量,有些browser具有cache的设置,如果一个css或是javascript文件没有被改变的话,它就不会再去下载一遍。通过这样的设置,也可能减少文件下载的数量。

减少Domain查询

对于每个Domain的查询,都需要去检索DNS, 过多的Domian查询会导致页面加载速度变慢。

缓存重用的内容

确保所有可以被缓存的数据都已被缓存,并在恰当的时间过期。

尤其要注意的是:Last-Modified header,它会记录下静态最近被改动的时间,而对于大多数web服务器来讲,都会默认的为静态文件提供这样的头。

js:避免使用eval或者是函数构造器

js解释器在执行代码前,会进行类似预编译的操作,首先会创建一个当前执行环境下的活动对象,并将那些用var声明的变量设置为活动对象的属性,但是此时这些变量的赋值都是undefined, 并将那些以funciton定义的函数也添加为活动对象的属性,而他们的值真是函数的定义。

使用eval时,传递给它的string内容,因为无法进行预编译,所以解释器也无法丢代码进行优化。这样的结果就是eval的效率相当低。

同时,在所以可以用string代替函数的地方,都不要用string来代替,而应该直接传一个函数过去。

js: 尽量使用局部变量而非全局变量

局部变量的查找速度比全局变量高出许多。

使用ajax。

参考代码:

$(function(){

$.ajax({

type:"POST",      url:"LoginLoadArticle.ashx",    

data: "type="+escape("最新公告") ,

success:function(msg){

$(".gonggao").html(msg)

      },      error:function(XMLHttpRequest, textStatus, thrownError){}

})

})

扩展资料:

xml:返回XML文档,可用JQuery处理。 

html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。 

script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有post请求都将转为get请求。 

json:返回JSON数据。 

jsonp:JSONP格式。使用SONP形式调用函数时,例如myurl?callback=?,JQuery将自动替换后一个“?”为正确的函数名,以执行回调函数。 

text:返回纯文本字符串。 

beforeSend:要求为Function类型的参数,发送请求前可以修改XMLHttpRequest对象的函数。