2016年10月8日星期六

Google Blog 10/08/2016 (p.m.)

    • 解决这种问题有两种方式:
    • 放弃前面的所有请求,只执行最后一次请求。
    • 放弃后面的所有请求,只执行第一次请求
    • 注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行
    • 核心思想是维护一个队列,发送请求时,将请求加入队列,请求响应后,从队列中清除,这就保证了在任一时刻只能有一个同样的请求发送.
    • 因为使用的是jquery的ajaxPreFilter函数,仅仅对jquery的ajax请求有作用
    • 目前type属性的值依旧还是text/javascript。不过,这个属性并不是必需的,如果没有指定这个属性,则其默认值仍为text/javascript
      • 并不是必须的,可以留空,默认值为text/javascript
    • 记住不要在代码中的任何地方出现"</script>"字符串
      • 通过转义字符‘/’解决这个问题
    • 如果要通过<script>元素来包含外部JavaScript文件,那么src属性就是必需的
    • 浏览器不会检查包含JavaScript的文件的扩展名
      • 所以JavaScript代码由后台语言动态生成,指要确保返回的是哪种MIME即可
    • 嵌入的代码会被忽略
      • 如果是带有src属性的<script>元素之间嵌入代码会被忽略
    • 只要不存在deferasync属性,浏览器都会按照<script>元素在页面中出现的先后顺序对它们依次进行解析
      • 浏览器遇到body>标签时才开始显示内容这种写法意味着要等到全部的JavaScript代码都加载-解析-运行完成后才会呈现页面上的内容
    • 为了避免这个问题,现代Web应用程序一般都把全部JavaScript引用放在<body>元素中页面内容的后面,
      • 这样子在解析包含的JavaScript代码之前,页面就不会出现空白页等待了
    • 这个属性的用途是表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕后再运行。
      • defer属性,立即下载,延迟执行
    • HTML5规范要求脚本按照它们出现的先后顺序执行
    • 在现实当中,延迟脚本并不一定会按照顺序执行,也不一定会在DOMContentLoaded事件触发前执行
    • ,因此最好只包含一个延迟脚本
    • defer属性只适用于外部脚本文件
    • 忽略给嵌入脚本设置的defer属性
    • 为此,把延迟脚本放在页面底部仍然是最佳选择
    • 只适用于外部脚本文件,并告诉浏览器立即下载文件
    • 并不保证按照指定它们的先后顺序执行
    • 建议异步脚本不要在加载期间修改DOM
      • 一般都是一些统计类的JavaScript代码才采用,要保证不操作DOM

Posted from Diigo. The rest of my favorite links are here.

没有评论:

发表评论