js是单线程的,脚本和事件处理程序一时刻只能执行一个,没有并发的概念。
客户端(浏览器)js时间线,从同步顺序脚本执行,逐步转为异步事件驱动。
源自javascript权威指南,自己整理理解:
1、创建document对象,开始解析web页面。创建HTMLHtmlElement对象,添加到document中。
创建HTMLHeadElement添加到HTMLHtmlElement中等等,总之遇到不同的标签创建不同的element、node等等,这个阶段document.readyState = 'loading'。
2、遇到link外部css,创建线程加载,并继续解析文档。
3...
发表于2013年5月3日 19:12:45 更新于2013年5月3日 19:14:01
众所周知,css有几种方式定义,按照优先级从低到高分别是:
1、引用外部css文件,<link>方式。
2、直接写在html head中的css代码,<style>方式。
3、直接写在html元素的style属性中,<a style='color:red'>方式,也称为内联方式。
1、2的方式可以在html元素中设置属性id、class等,在css中可以根据id或者class进行选择。
在前端开发中,经常会用到js来操控css以达到某些动态效果。
通常,用得最多的就是通过js操控内联样式以及class属性。
1、js操控内联样式,即html元素的s...
1、引用外部css文件,<link>方式。
2、直接写在html head中的css代码,<style>方式。
3、直接写在html元素的style属性中,<a style='color:red'>方式,也称为内联方式。
1、2的方式可以在html元素中设置属性id、class等,在css中可以根据id或者class进行选择。
在前端开发中,经常会用到js来操控css以达到某些动态效果。
通常,用得最多的就是通过js操控内联样式以及class属性。
1、js操控内联样式,即html元素的s...
发表于2013年4月25日 19:44:16 更新于2013年4月25日 19:44:59
js里的event跟flash的一样(actionscript也是ECMAScript,本是同根生),也有捕获阶段--目标阶段--冒泡阶段。
window --> document --> HTMLHtmlElement --> body --> 父element --> element --> 父element --> body --> HTMLHtmlElement --> document --> window
当然也不是所有事件都冒泡。
html里事件侦听的方式有3种:
1、在js里设置对象的属性为处理函数,
[cod...
window --> document --> HTMLHtmlElement --> body --> 父element --> element --> 父element --> body --> HTMLHtmlElement --> document --> window
当然也不是所有事件都冒泡。
html里事件侦听的方式有3种:
1、在js里设置对象的属性为处理函数,
[cod...
发表于2013年4月24日 21:08:06 更新于2013年5月3日 19:15:10
最近从头学习javascript,自己写的一些练习源码用于加深理解,记录备查。
1、DOM相关
1.1 基础概念

在一个html文档(树)中,所有的东西都是Node节点。Node是最基础的基类,有子类Document、Element、CharacterData(text、comment)。
其中Document代表一个html文档,是最顶层节点,js中可以用window.document(document)引用到。
html标签代表的是最顶层的元素eleme...
1、DOM相关
1.1 基础概念

在一个html文档(树)中,所有的东西都是Node节点。Node是最基础的基类,有子类Document、Element、CharacterData(text、comment)。
其中Document代表一个html文档,是最顶层节点,js中可以用window.document(document)引用到。
html标签代表的是最顶层的元素eleme...
发表于2013年4月23日 14:02:19 更新于2013年4月23日 14:05:07
这两天在写一个缓存类,尝试用下大名鼎鼎的memcached。
结果一查php手册,有点懵,有一个memcache扩展和一个memcached扩展,再加上windows上不支持memcached扩展,网上一搜,说的乱七八糟,这里梳理澄清下。
首先:
1、memcached服务端:
memcached是一个开源的免费的高性能的分布式的内存级别的数据缓存系统,跟php不搭噶。
官方网址:memcached
也就是说memcached是一个服务器,提供了一系列接口给外部调用用于存储/取值等。
这些接口的调用者就是客户端,ph...
结果一查php手册,有点懵,有一个memcache扩展和一个memcached扩展,再加上windows上不支持memcached扩展,网上一搜,说的乱七八糟,这里梳理澄清下。
首先:
1、memcached服务端:
memcached是一个开源的免费的高性能的分布式的内存级别的数据缓存系统,跟php不搭噶。
官方网址:memcached
也就是说memcached是一个服务器,提供了一系列接口给外部调用用于存储/取值等。
这些接口的调用者就是客户端,ph...
发表于2013年4月13日 21:48:16 更新于2013年4月13日 22:20:03
推荐两篇文章,非常棒:
What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text
Handling Unicode Front To Back In A Web App
从字符编码是什么,到浏览器与后端(PHP)交互,从PHP到mysql交互讲的简单明...
What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text
Handling Unicode Front To Back In A Web App
从字符编码是什么,到浏览器与后端(PHP)交互,从PHP到mysql交互讲的简单明...
发表于2013年4月11日 16:56:59 更新于2013年4月11日 17:02:36
前天update执行了条语句,忘了写where,导致整个表数据都废了,还好是dev环境,后来是人肉到qa环境的数据库去拷贝过来的的,吓出一身冷汗,这两天整理学写了下mysql的备份以及恢复的知识:
1、mysqlbinlog日志
mysqlbinlog首先要在my.ini中开启,如log-bin=mysql-bin,会在data目录下生成对应的如mysql-bin.000001、mysql-bin.000002等等文件,一般是每次重启mysql或者手动flush logs就会生成一个日志文件。
日志文件中记录了每一次对数据库有实质影响的操作,如insert、update等。每次操作都记...
1、mysqlbinlog日志
mysqlbinlog首先要在my.ini中开启,如log-bin=mysql-bin,会在data目录下生成对应的如mysql-bin.000001、mysql-bin.000002等等文件,一般是每次重启mysql或者手动flush logs就会生成一个日志文件。
日志文件中记录了每一次对数据库有实质影响的操作,如insert、update等。每次操作都记...
发表于2013年3月24日 11:42:37 更新于2013年3月24日 11:52:06
不仅仅是web,如今各种各样的细分技术里都有缓存这种东西,归根结底都是为了提高速度与节省资源,HTTP也不例外,这里简单记录下HTTP的缓存控制(这里仅简单的谈及浏览器缓存)。
欢迎探讨,有不对之处,还望指正。
HTTP有客户端(浏览器)发起请求、服务器端发送响应,因此,缓存也要从两方面谈起。
服务器端可以要求浏览器缓存还是不缓存,以及告诉一些缓存的额外信息。
浏览器可以听服务器端的缓存要求,也可以强制不听你丫的。
通常来说,缓存控制的主要部分由服务器端控制,毕竟浏览的内容是从服务器端出来的,服务器端清楚这份内容是否能缓存以及各种各要的额外信息。
一、服务器端(使用PHP验证):...
欢迎探讨,有不对之处,还望指正。
HTTP有客户端(浏览器)发起请求、服务器端发送响应,因此,缓存也要从两方面谈起。
服务器端可以要求浏览器缓存还是不缓存,以及告诉一些缓存的额外信息。
浏览器可以听服务器端的缓存要求,也可以强制不听你丫的。
通常来说,缓存控制的主要部分由服务器端控制,毕竟浏览的内容是从服务器端出来的,服务器端清楚这份内容是否能缓存以及各种各要的额外信息。
一、服务器端(使用PHP验证):...
发表于2013年3月20日 20:35:37 更新于2013年3月20日 22:09:57
所谓序列化,就是将1个变量转化为二进制或者字符串形式,进行存储或者传输。
反序列化,正好相反。
这里总结下最近用到的PHP里面的序列化、反序列化相关的知识。
1、serialize序列化 unserialize反序列化
php中提供了serialize函数用于将一个变量值序列化为字符串形式,
通过unserialize又可以将这个字符串反序列化为一个具体的变量值。
参考如下代码:
...
反序列化,正好相反。
这里总结下最近用到的PHP里面的序列化、反序列化相关的知识。
1、serialize序列化 unserialize反序列化
php中提供了serialize函数用于将一个变量值序列化为字符串形式,
通过unserialize又可以将这个字符串反序列化为一个具体的变量值。
参考如下代码:
...
发表于2013年3月17日 10:46:57 更新于2013年3月17日 10:52:11
今天小试了下PHP VLD扩展的安装。PHP的所有扩展可以到PECL(官网)上下载(你牛叉也可以发布扩展到这个网站),php扩展在windows下编译为dll放在ext目录,linux下编译为so。(PHP还有一种叫PEAR组件库类库网站,不要搞混了)
一般网上介绍的都是linux下的VLD安装,大致是下载源码,直接编译。但在windows下要用vs进行dll编译,有点小复杂。不过PHP官方提供了windows的PECL扩展网站,...
一般网上介绍的都是linux下的VLD安装,大致是下载源码,直接编译。但在windows下要用vs进行dll编译,有点小复杂。不过PHP官方提供了windows的PECL扩展网站,...
分类
琐碎文字 As3&Flex RIA UG English CodingArt C++ PHP Webserver E音乐盒 Unity3d C# JS&Html5 Tools mobile golang AI 最近发表
- claude code / codex的一些配置(2026年5月5日 17:38:10)
- 2026.5.5(2026年5月5日 17:27:39)
- js的锁以及异步调用相关(2024年11月30日 10:58:51)
- golang学习之函数/方法/接口(2022年1月6日 17:50:24)
- golang学习之零值(2022年1月6日 16:38:10)
- hello, 2018(2018年1月15日 22:47:25)
- 字体类型名词解释(2015年1月18日 11:29:14)
- 获取mysql表注释以及列注释(2014年11月13日 15:56:32)
- php连接ms sql数据库的一些问题(2014年9月15日 20:32:14)
- virtualbox虚拟网络:NAT&bridge桥接网络(2014年8月25日 22:51:35)
最近回复

浙公网安备33010802004887号