- 浏览: 30313 次
最新评论
文章列表
JavaSciprt事件中有两个很重要的特性:事件冒泡 以及目标元素 。
事件冒泡: 当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。
目标元素: 任何一个事件的目标元素都是最开始的那个元素,在我们的这个例子中也就是按钮,并且它在我们的元素对象中以属性的形式出现。使用事件代理的话我们可以把事件处理器添加到一个元素上,等待一个事件从它的子级元素里冒泡上来,并且可以很方便地得知这个事件是从哪个元素开始的。
事件的冒泡和捕获
捕获是从上级元素到下级元素,冒泡是从下 ...
offsetParent属性返回一个对象的引用,这个对象是距离调用offsetParent的元素最近的(在包含层次中最靠近的),并且是已进行过CSS定位的容器元素。 如果这个容器元素未进行CSS定位, 则offsetParent属性的取值为根元素(在标准兼容模式下为html元素;在怪异呈现模式下为body元素)的引用。 当容器元素的style.display 被设置为 "none"时(译注:IE和Opera除外),offsetParent属性 返回 null。
句法:
parentObj = element.offsetParent
变量:
· parentOb ...
判断数组方法:
Object.prototype.toString.apply(value) === '[Object Array]';
在大量的数据处理中,为了便于数据查找,对输入的数据采用分类二叉树的方式存储,可以大大提高查找效率,其时间效率是O(log2n);
分类二叉树的定义:
① 每个元素有一个关键字(一般限定任意两个元素的关键字都不相同,相同的时候再做处理)
② 根节点的左子树跟的关键字小于根节点的关键字
③ 根节点的右子树跟的关键字大于根节点的关键字
④ 根节点的左右子树也都是分类二叉树
分类二叉树的中序遍历结果就是升序排序结果
分类二叉树的插入:先找到要插入的位置,也就是利用分类二叉树的的查找算法,但得设一个父指针,用来保存插入位置的父节点
分类二叉树的删除:
①x是叶子节点
②x只有一个非空子树
③x有两 ...
一般树和二叉树的转换:
就是将森林用二叉树的方式来存储,将所有节点都看成只有两个指针域的节点,son和next节点,son节点指向它的左边第一个节点,next指向它的兄弟节点。到此为止形成的就是一颗二叉树。
也可以通过以下方式来转换:首先将同一双亲的兄弟节点从左至右地连接起来,然后将双亲节点的孩子节点的分支中,除与长子节点的分值保留外,其他的全部去掉,最后将兄弟相连的横线旋转45°
一般树转换成二叉树后,二叉树是没有右子树的,没有右子树的二叉树也可以转换成森林。
将森林转换成一颗一般树:首先将每棵树都转化成对应的二叉树表示,然后从转化后的树中任选一棵树,作为森林转化为一般树的根,最后,在剩下 ...
二叉树的非递归遍历:先根,中跟和后跟一般都要用到栈
后跟遍历一个节点,这个节点一般的入栈两次,第二次出战的时候才访问,所以得有个标志,标记是节点第几次入栈。
层次遍历一般得用到队列
线索树:左链接域指向左孩子节点或前驱节点,右链接域指向右孩子节点或后继节点。
利用空链接域指向的原则如下:
在某种遍历规则下,如果一个节点N的左链接域为空,则利用这个左链接域指向这种遍历规则下节点N的直接前驱节点。即空的左链接域指向其前驱节点。
在某种遍历规则下,如果一个节点N的右链接域为空,则利用这个右链接域指向这种遍历规则下的节点N的直接后继节点。即,空的右链接域指向其后继节点。
背包问题基本思想:
将所有物品编号放到数组中,从0号物品开始顺序的选取物品,如果可以装到背包,则将该编号进栈。
如果当前的物品装不下,则取下一个物品,并尝试装进去。
如果尚未求得解,又无物品可以选,则说明上一个物品装的不合适,就从堆栈中退出一个编号,再从这个退出的编号的下一个编号物品尝试。
每求得一组解,就输出堆栈中的所有物品编号,然后退出栈顶元素,再从当前的退出的编号的下一个编号物品尝试,直到堆栈为空。
四染色问题也可以用回溯的思想通过栈和一个二维矩阵来实现,栈用来保存已经染过色的地区,矩阵用来保存地区之间的关系,及相邻与否。
分两种情况讨论:
1、使用内联样式,即直接把CSS写在HTML元素的style属性中
[xhtml] view plaincopy
<div id="d1" style="width:100px;height:200px;">
</div>
通过以下js代码可以获取width等属性,
[javascript] view plaincopy
alert(document.getElementById('d1').style.width);//100px
...
1.Socket通信首先建立一个套接字:
客户端 Socket client = new Socket(主机名,端口号);
服务器端 ServerSocket server = new ServerSocket(端口号);
Socket incomming = server.accept();accept()方法阻塞
当然还可以设置其他的一些参数,如超时链接等 。
在服务器端可以通过多线程,同时处理多个客户端的请求,每个请求到达就创建一个线程
半关闭:是指套接字的一端可以关闭其输出,同时保持其可以接收对方发来的数据
2.可中断套接字:当连接到一个套接字时,当前线 ...
2012-04-01 10:54:07| 分类: Java | 标签:http 状态码 |举报 |字号 订阅
1xx 消息
这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向 HTTP/1.0 客户端发送 1xx 响应。
100 Continue
客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果 请求已经完成,忽略这个响 ...
转】JS获取元素的一些属性和设置元素的宽度等属性
clientWidth //获取元素的宽度
clientHeight //元素的高度
offsetLeft //元素相对于父元素的left
offsetTop //元素相对于父元素的top
offsetWidth //元素的宽度
offsetHeight //元素的高度
区别:
clientWidth=width+padding
clientHeight=height+padding
offsetWidth=width+padding+border
offsetHeight=width+padding+border
scrollLe ...
在IE和火狐中用Js的childNodes返回的结果是不同的,
IE是将一个完整标签作为一个节点。而 Firefox除了上述的的情况外,也把一个标签的结束符“>”到下一个标签的起始符“<”之间的内容(除注释外,包括任何的文字、空格、回 车、制表符)也算是一个节点了。而且这种节点也有它们自己独特的属性和值--nodeName="#text"。
所以要想在IE和火狐中兼容childNodes就必须在火狐中滤掉那些多余的叫#text的节点,下面是能够在IE和火狐上兼容的全选,反选和不选的js代码:
<!DOCTYPE html PUBLIC "-//W ...
apply和call都是将函数绑定到另外一个对象上运行,即函数的this指针,变成了调用者的值
调用者是一个函数,第一个参数是要运用该函数的对象如:f.call(obj),就相当于obj.f()
call和apply常用来实现继承
call和apply方法差不多区别在于第二个参数,call的第二个参数可以是任意类型而apply的有类型约定,如数组
Linux shell脚本的字符串截取
分类: 服务器/Linux/Unix Shell脚本 2010-05-17 19:15 7367人阅读 评论(2) 收藏 举报
linuxshell脚本
Linux 的字符串截取很有用。有八种方法。
假设有变量 var=http://www.hao.com/123.htm
.
.
一 # 号截取,删除左边字 ...
java中判断float类型数据等于零:
当精度不是要求很高时:
Math.abs(para) < 0.001
当精度要求很高时可以用:
BigDecimal来比较如:
new BigDecimal("0.0002222222222").compareTo(new BigDecimal("0.0002222222221")) == 0);