提炼自Client-Side Security Best Practices
HTML5的出现使很多业务逻辑从后端转移到前端,这也使得前端开发人员需要在安全上多加注意。本文将讨论如何使你的APP更加安全,除了告诉你转码用户输入外,还会介绍一些新的安全方案。
提炼自Client-Side Security Best Practices
HTML5的出现使很多业务逻辑从后端转移到前端,这也使得前端开发人员需要在安全上多加注意。本文将讨论如何使你的APP更加安全,除了告诉你转码用户输入外,还会介绍一些新的安全方案。
摘自《JavaScript权威指南第六版》,详细描述了JavaScript下载、解析、事件循环整个过程。
Web浏览器创建Document
对象,并且开始解析Web页面,页面解析HTML元素和它们的文本内容后,添加Element
对象和Text
节点到文档中。这个阶段document.readyState
属性的值为loading
。
HTML解析器遇到没有async
和defer
属性的script元素时,它把这些元素添加到文档中,然后运行行内和外部脚本。这些脚本会同步执行,并且在脚本下载(如果需要)和执行时解析器会暂停。这样脚本就可以使用document.write()
来把文本插入到输入流中。解析器恢复时,这些文本会成为文档的一部分。同步脚本经常简单定义函数和事件处理程序,但它们可以遍历和操作文档树,因为它们执行时已经存在了。这样,同步脚本可以看到它自己的script元素和它们之前的文档内容。
HTML解析器遇到有async何defer属性的script元素时,它开始下载脚本文件,并继续解析文档。脚本会在它下载完成后尽快执行,但是解析器没有停下来等它下载。异步脚本禁止使用document.write()
方法。它们可以看到自己的script元素和它之前的所有文档元素,并且可能或者干脆不可能访问其他的文档内容。
现在IE10,Chrome和Firefox系列浏览器都支持CSS3动画,一些增强用户体验的动画可以利用CSS3取代JavaScript来实现,另外,CSS3动画还可以实现GPU加速。对于不支持CSS3动画的浏览器,就需要采用JavaScript来实现类似功能。
参见这里。