DOM文档对象模型

Dom对象的属性与方法

 返回对象集合

     (1).all[];

     (2).images[];

     (3).anchors[];

     (4).forms[];

     (5).links[];

属性

    document.cookie;设置或返回当前文档有关的所有cookie       

    document.title;返回当前文档的标题

    document.domain;返回当前文档的域名

    document.URL;返回当前文档的URL

   元素属性及方法

    getElementById('');                 返回指定 Id 的第一个对象。

    getElementsByName('');        返回指定 name名称的对象集合(下标数组)。  getElementsByName('')[0];获取对象集合的第一个对象。

 getElementsByTagName('');返回指定标签名的对象集合(下标数组)。  getElementsByTagName('')[0];获取对象集合的第一个对象。

 .length();             返回数组长度。

     .getAttributeNode();返回指定属性的节点       

   .getAttribute('');返回元素节点的指定属性值

   .createAttribute('');创造属性

   .createElement_x('');创造元素

   .setAttribute();把指定属性设置或更改为指定值

   .setAttributeNode();设置或更改指定属性的节点

   .removeChild();从元素中移除子节点

   .removeAttributeNode();移除指定的属性节点,并返回被移除的节点

    .removeAttribute();从元素中移除指定属性

   .replaceChild();替换元素中的子节点

    .insertBefore();在指定的已有的子节点之前插入新节点

    .appendChild(); 向元素添加新的子节点,作为最后一个子节点

     .hasAttribute();如果元素拥有指定属性,则返回true否则返回false

          .hasChildNodes();如果元素拥有子节点,则返回true,否则false

         .isEqualNode();   检查两个元素是否相等

         .isDefaultNamespace();指定的namespaceURI是默认的,则返回true,否则返回false

          .className     class属性

          .id   id属性

          .tagName  标签名

          .style   样式属性

          .nodeName   元素名称

          .nodeType   元素类型

         .nodeValue  元素内容

          .namespaceURI  返回元素的namespace URI

          .textContent         设置或返回节点及其后代的文本内容

          .innerHTML          设置覆盖节点的 HTML语句

          .outerHTML          节点内追加的 HTML语句

          .offsetHeight 元素高度

         .offsetTop 返回元素的垂直偏移位置。

          .scrollTop 返回元素上边缘与视图之间的距离。

          .scrollHeight 返回元素的整体高度

         .clientHeight  返回元素的可视高度

          .toStrings();转换成字符串

 1 <div id="t1">
 2    <div><input type="file" /> <input type="button" value="删除" onclick="del(this)"/></div>
 3 </div>
 4 <input type="button" value="增加" onClick="add()"/>
 5 <script>
 6 function add(){
 7     var t1 = document.getElementById('t1');//获取节点 
 8     var div = document.createElement('div');//创建div    
 9     var file = document.createElement('input');//创建input
10     file.setAttribute('type','file');//设置input的类型为file    
11     var btn = document.createElement('input');//创建input
12     btn.setAttribute('type','button');//设置input的类型为button
13     btn.setAttribute('value','删除');//设置input的value为删除
14     btn.setAttribute('onclick','del(this)');//设置onclick事件
15     div.appendChild(file);//把file添加到div中
16     div.appendChild(btn);//把btn添加到div中    
17     t1.appendChild(div);//把div添加到t1中
18 } 
19 function del(_this){
20     var div = _this.parentNode;
21     var t1 = _this.parentNode.parentNode;
22     t1.removeChild(div);
23 }
24 </script>

阻塞与非阻塞,它们是程序在等待消息(无所谓同步或者异步)时的状态

阻塞——调用结果返回之前,当前线程会被挂起。
socket接收数据函数recv是一个阻塞调用的例子。
当socket工作在阻塞模式的时候, 如果没有数据的情况下调用该函数,则当前线程就会被挂起,直到有数据为止。

非阻塞——和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。

 

协程——多个线程互相协作,完成一个任务。

举例来说,读取文件的协程写法如下。


function asnycJob() {
  // ...其他代码
  var f = yield readFile(fileA);
  // ...其他代码
}

上面代码的函数 asyncJob 是一个协程,协程遇到 yield 命令就暂停,执行权将交给其他协程,执行权返回再从暂停的地方继续往后执行。

Cache-Control 

网页缓存是由HTTP消息头中的Cache-control规则来控制,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。缓存指令是单向的,即请求中存在一个指令并不意味着响应中将存在同一个指令。

Cache-control参数值 说明
public 所有内容都将被缓存(客户端和代理服务器都可缓存)
private 内容只缓存到私有缓存中(仅客户端可以缓存,代理服务器不可缓存)
no-cache 必须先与服务器确认返回的响应是否被更改,然后才能使用该响应来满足后续对同一个网址的请求。因此,如果存在合适的验证令牌 (ETag),no-cache 会发起往返通信来验证缓存的响应,如果资源未被更改,可以避免下载。
no-store 所有内容都不会被缓存到缓存或 Internet 临时文件中
must-revalidation/proxy-revalidation 如果缓存的内容失效,请求必须发送到服务器/代理以进行重新验证

php的cURL初步使用

        PHP支持的由Daniel Stenberg创建的libcurl库允许你(模拟)与各种的服务器使用各种类型的协议进行连接和通讯。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。

 用curl资源模拟浏览器的请求:

复制代码
复制代码
 1 <?php
 2      // 创建一个新cURL资源
 3     $ch  =  curl_init ();
 4 
 5     // 设置URL和相应的选项
 6     curl_setopt ( $ch ,  CURLOPT_URL ,  "http://www.example.com/" );
 7     //不设置请求头信息
 8     curl_setopt ( $ch ,  CURLOPT_HEADER ,  0 );
 9     //开启模拟POST请求
10     curl_setopt($ch,CURLOPT_POST,1);
11     /*
12     curl_setopt()常用选项说明:
13     CURLOPT_URL:设置模拟浏览器的请求地址
14     CURLOPT_RETURNTANSFER(1):捕获内容但不输出
15     CURLOPT_HEADER(0或1):设置请求头信息;设置为1
16     CURLOPT_POST(1):是否开启模拟POST请求;开启为1
17     CURLOPT_POSTFIELDS:设置POST请求时传递的参数,(当参数为数组时,cURL会把数据编码成 multipart/form-data,而然传递一个URL-encoded字符串时,数据会被编码成 application/x-www-form-urlencoded。)
18      */
19     
20      // 执行cURL资源
21     $result=curl_exec ( $ch );
22     echo $result;
23      // 关闭cURL资源,并且释放系统资源
24     curl_close ( $ch );
25 ?> 
复制代码

 

posted @ 2017-08-09 00:07  兰昌  阅读(1437)  评论(0编辑  收藏  举报