在javascript中,程序是一行行命令式执行的,在上一行返回结果后执行下一行的语句,并且在客户端浏览器里是单线程运行的。
如果在执行一条要耗时的操作,而接下来的程序操作与此条执行语句并无关系,则可将此语句放在一个闭包里去执行,用setTimeout(function(){}, 0)来激活,这个技巧可使浏览器javascript引擎在运行完前面的任务后第一时间运行setTimeout中的function,并不是真是延时0毫秒就运行的意思。
{"type":"编程笔记"}
在javascript中,程序是一行行命令式执行的,在上一行返回结果后执行下一行的语句,并且在客户端浏览器里是单线程运行的。
如果在执行一条要耗时的操作,而接下来的程序操作与此条执行语句并无关系,则可将此语句放在一个闭包里去执行,用setTimeout(function(){}, 0)来激活,这个技巧可使浏览器javascript引擎在运行完前面的任务后第一时间运行setTimeout中的function,并不是真是延时0毫秒就运行的意思。
匿名函数中的作用对象是全局的window对象,一般是不需要注意这点,但当在匿名函数中使用使用this就要小心,这个this是指向window的,如上所示可以用apply或者call来指定匿名函数作用于哪个对象上,但匿名函数如果在setTimeout/setInterval中使用的话则需要将this对象用别名如_self/self/_this/that替代后在匿名方法中使用,如下面二个参考文章所示。
看到一篇讨论MyISAM和INNODB的文章,分析这二种引擎的适用环境。
当在网页浏览中,所有的网页都是在同一个浏览器窗口(或者是tab)中浏览时,可以利用window.name进行页面状态的传递,相当于页面的session被持久在当前窗口的window.name中,不同的页面都可以读取到存在window.name中的值。