接上一篇,希望能写一个高性能Javascript专题。 第一篇:高性能Javascript--脚本的无阻塞加载策略。 经典计算机科学的一个问题是,数据应当存放在什么地方,以实现最佳的读写效率。数据存储是否得当,关系到代码运行期间数据被检索到的速度。在Javascript中,此问题相对简单,因...
分类:
编程语言 时间:
2014-10-10 21:25:54
阅读次数:
301
Javascript在浏览器中的性能,可以说是前端开发者所要面对的最重要的可用性问题。 在Yahoo的Yslow23条规则当中,其中一条是将JS放在底部?。原因是,事实上,大多数浏览器使用单进程处理UI和更新Javascript运行等...
分类:
编程语言 时间:
2014-10-10 19:42:54
阅读次数:
262
上来先来一个图:在使用webdriver操作Firefox浏览器的时候,一路顺畅。可是在最后关闭浏览器后,出现了如上面图示的警告!这个警告很早就出现了,因为也不影响测试结果,也就一直没理。后来新搭建了一个windows虚拟机,也遇到了同样的问题。但是这次出现警告后,会阻塞住webdriver继续执行...
分类:
Web程序 时间:
2014-10-10 19:35:54
阅读次数:
290
众所周知java支持多线程,有多线程就必然会存在多线程的交互,交互方式有多种,比如通过共享数据,或者通过提供的锁信号量等等,这里通过用wait以及notify实现线程交互。要用好线程的wait和notify就要首先了解一下线程的状态,线程的状态大致可以划分为一下几种,创建->就绪->运行->阻塞->...
分类:
编程语言 时间:
2014-10-10 16:46:34
阅读次数:
206
1.浏览器对script引用的js文件分两步,下载,下载完毕后马上执行;这两步都会阻塞浏览器继续解析。2.加入defer属性,,浏览器会异步加载js,待DOMContentLoaded后顺序执行js。3.预加载js,自定义执行时机。...Click to load alert.js ......4....
分类:
编程语言 时间:
2014-10-09 23:23:57
阅读次数:
263
最近学习时碰到事件驱动和非阻塞的相关知识,随之想到了Java中的Reactor、io与nio的一些东西;在前辈的博客上翻了翻、复习复习,在此记录一番。实在找不到比较大点的东西,于是随便弄了个压缩包,大小在1G左右;写个程序模拟一下下载,开两个客户端线程请求下载;结果会是:一个请求会一直阻塞,直到一个...
分类:
编程语言 时间:
2014-10-09 21:28:17
阅读次数:
201
工作中很多涉及到多线程的地方都implemnets Runable 接口 或者是 extends Thread 抽象类,但是这样子的话得不到返回值。
如果以下场景:
在多线程中计算值,线程结束后需要携带返回值。
这时就需要Callable接口,实现改接口后需要实现方法 call 。改接口需要ExecutorService的submit方法执行,执行结果包装在 Future泛型类中。
通过Future类的get()方法取得返回值,get()是阻塞的,在线程执行前调用get()方法会一直阻塞着。...
分类:
其他好文 时间:
2014-10-09 20:44:17
阅读次数:
214
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。 例如普通B/S模式(...
分类:
系统相关 时间:
2014-10-09 15:16:13
阅读次数:
415
将所有标签放置在页面底部,紧靠关闭标签的上方。此方法可以保证页面在脚本运行之前完成解析。将脚本成组打包。页面的标签越少,页面的加载速度就越快,响应也更迅速。不论外部脚本文件还是内联代码都是如此。有几种方法可以使用非阻塞方式下载Javascript:为标签添加defer属性动态创建元素,用它下载并执行...
分类:
Web程序 时间:
2014-10-09 14:25:03
阅读次数:
204