FlexTheCloud

游戏就是让文字和图像动起来的艺术

Pro .Php. Programing 读书笔记:第十五章 JSON和Ajax

1)JSON值类型包括七种:string、object、array、number、false、true和null。 JSON object中可包含JSON array,反之亦可。

2)php已经内置函数用于编码、解码JSON格式的数据,分别是json_encode()和json_decode(),编码格式必须为UTF-8.

 3)数据库或文件句柄不能被编码成JSON。 而且php中的整数和浮点数在JSON中都表示为number

4)json_decode有一个可选参数$assoc并且默认为FALSE,如果设置为TRUE,则JSON数据将被解析成关联数组(associative arrays)。

 5)设置Ajax请求头,在JavaScript中是setRequestHeader(String header_name,String header_value)。

2012年1月17日行事记录

1)学习JQ的工具函数:

*浏览器类型和版本检测:

$.brower.opera/.msie/.mozilla/.safari,是该浏览器则返回true否则false;

$.brower.version返回浏览器版本,其中mozilla firefox浏览器返回的是内核版本号而非浏览器版本号。

*浏览器特征检测:

①是否是W3C盒模型 $.support.boxModel,若返回true则为W3C盒模型。 W3C盒模型和IE盒模型的区别是W3C盒模型的width/height不包括padding和border的宽度,而IE盒模型就包括。

而文档类型DOCTYPE在检测盒模型时也很重要,须要添加。

②其他属性如cssFloat、hrefNormalized、htmlSerialize、leadingWhitespace、noCloneEvent、objectAll、opacity、scriptEval、style、tbody基本是在IE中为false。

*数组和对象的操作:

①遍历 $.each(obj,callback(param1,param2){}) ,不仅可以遍历DOM元素,也可遍历数组或对象。 其中obj可以是数组,param1是序号,param2是元素值;obj也可以是对象,param1是对象的属性名,param2是对象的属性值。

②筛选 $.grep(array,callback(element,index){},[invert]),其中callback返回布尔值,invert默认为false,表示筛选 使callback返回true的元素,即不取反。  返回值是筛选后的新数组,值是没变的。

③映射 $.map(array.callback(element,index){}),其中callback返回元素值,其作用是在筛选的基础上进行数据变更。

④搜索元素 $.inArray(value,array),搜索数组中是否存在某一个元素,若有,则返回索引值;否则返回-1。

⑤形成数组$.makeArray(obj),将一系列值或者对象组织成一个数组,就可以进一步用针对数组的函数对其加以操作。

⑥$.merge(firstArray,secondArray),混合两个数组。

⑦$.unique(array),将数组中的重复元素删除到只剩一个,注意这里的元素必须是DOM元素,而不能是字符串或者数字。

⑧$.extend([deep],target,obj1,[objN]),用于扩展JQuery自身函数和已有的Object对象以及开发插件。

*字符串操作:

JQ中唯一一个操作字符串的函数,$.trim(str),删除字符串str左右两边的空格符。

*状态检测:

$.isArray(obj)是否是数组,$.isFunction(obj)是否是函数,$.isEmptyObject(obj)是否是空对象,$.isPlainObject(obj)是否是一个原始对象,$.contains(container,contained)是否父节点包含子节点。

*URL参数序列化

$.serialize()函数的核心即是$.param(obj,[tranditional]),其中obj为Array<elements>,JQuery对象或者Object等待序列化对象,tranditional为布尔值,是否使用传统方式浅层序列化。 该函数返回序列化后的字符串。

 

2012年1月5日行事记录

1)下午实训maya,基本没什么收获..坑爹的实训

2)学习JQ之ajax的用法:

*serialize(),用于序列化url名值对参数,以避免用对象字面量一长串。  在发送端要url编码,在服务器端要url解码这也是常识。

* 最底层方法$.ajax([options]),其中可选options包括url(发送请求的页面),dataType(返回的数据类型),type(发送的方式post或get),data(发送的数据),beforeSend,success,complete,error四个函数,timeout(超时时间),global(是否响应全局事件),async(是否异步请求),cache(是否进行页面缓存)。

*全局设置方法$.ajaxSetup([options]),为所有的$.ajax()方法配置默认设置

3)ajax全局事件:所有ajax数据请求都默认绑定了ajax全局事件,按顺序来它们是:ajaxSend([callback]),ajaxStart([callback]),ajaxComplete([callback]),ajaxStop([callback]),ajaxSuccess([callback]),ajaxError([callback]).

所有的全局事件都是以XHR对象和ajax设置作为参数传递给回调函数,在处理回调函数时,只要分析其传递回的参数即可。

 

 

2011年12月28日行事记录

1)学习JQ中有关ajax的应用: 加载xml数据 $.get(url,[data],[callback],[type]),其中type表示返回数据的格式,值有html、xml、js、json、text等,

其中可以在回调函数callback(data)的函数体中处理返回的数据data。

至此,就学习了JQ加载四种文档数据:html,json,js,xml。

2)结合动态网页技术,利用ajax实现双向传递(客户端发出数据到服务端,服务端接收后进行处理,再将数据发回到客户端,客户端进行处理并显示)

上一点中的$.get()函数不仅可以加载本地数据,同样也可以向服务器请求数据。本例利用asp.net C#编写的aspx文件作为服务器文件。

2011年12月17日 行事记录

1) 英语六级考试。

2)学习JQ中有关ajax技术:   全局函数getJSON(url,[data],[callback]),用于加载JSON数据文件,其中callback有个参数data即是返回的数据。 可以在回调函数中对其进行遍历。  

全局函数getScript(url,[callback]),用于在运行时加载 script文件,同样可以完成加载封装在JS对象中的数据,其实也就是JSON。 运行时加载javascript的方法有三种,不过getScript()无疑是最简单的选择。

Pro. PHP .Programing 读书笔记: XML 与 PHP

underestimate vt.低估,轻视
1)XML被广泛利用在SOAP和REST web Services, RSS feeds,和XHTML documents(一种利用了XML Schema技术的格式更严格的HTML文档)。
2)在PHP中,有四种处理XML的方式:
* simpleXML
* DOMDocument
* XMLReader 和XMLWriter
有两种XML解析器: 一种是基于事件的(如Expat解析器,simple API for XML(SAX)就是基于这个解析模型的,一次只读取一部分xml信息到内存中,适合特别大的xml文档),一种是基于文档树的(simpleXML和DOMDocument都是这个解析原理,是需要一次性将XML文档读入到内存中去parse的)。
3)三种主流约束XML文档的方式: Schema,DTD,RELAX NG(REgular LAnguage for Xml Next Generation).
4)在php中定义xml字符串:
$xml=<<<THE_XML
<animals>

       <cat>miao</cat>
       <dog>wang</dog>
</animals>
<<<THEXML;

5)simpleXML需要PHP5 ↑才支持.
利用SimpleXMLElement对象解析刚才那个xml字符串:
$xml_object=simplexml_load_string($xml); //$xml_object指向的是根元素
6) ****利用SimpleXMLElement对象解析一个文档(XHTML或XML):
$xml_object=simplexml_load_file(“file url”);
在simpleXML中 利用->获得子节点, attributes()获得所有属性节点,trim()消去字符串中的whitespace并返回字符串,simpleXML也可以直接从DOMDocument对象导入而来$xml_object->simplexml_import_dom($domdocument_object);

****利用DOMDocument对象解析一个文档:

$domdocument_xml=new DOMDocument();

$domdocument_xml->loadXML(” a full xml string”);//从字符串中解析

$domdocument_xml->load(“file.xml”);//从一个文件解析

$dom_element=dom_import_simplexml($simplexml_object);

$dom_element=$domdocument_xml->importNode($dom_element,true);

$dom_element=$domdocument_xml->appendChild($dom_element); //从simpleXML对象导入并解析

7) XPath和XQuery都是为了使搜索文档中nested元素变得更加容易.
XPath在simpleXML库和DOMDocument库中都实现了:
在simpleXML中,利用xpath()函数即可返回element元素的路径: $xml_object->xpath(“element”);
在DOMDocument中,先创建一个DOMXPath对象,然后调用该对象的query()方法.

8)xml文档如果定义了 命名空间,那么在php中解析处理的时候也需要注意命名空间

当用simpleXML时,应先为根元素注册命名空间:

$xml_object=simplexml_load_string($xml);

$xml_object->registerXPathNamespace(“prefix”,”URL”);

9)生成xml文档:

**** simpleXML方式:

$animals=new SimpleXMLElement(“<animals />”);

$animals->{0}=”Hello World SimpleXML genrating xml document”;

$animals->asXML(“newFile.xml”);

****DOMDocument方式:

可导入为simpleXML对象形式存储。

10)

XMLReader和XMLWriter有大约20种节点类型,比较频繁使用的是XMLReader对象的read()、expand()方法。

2011年12月7日行事记录

1)学习离散数学”命题逻辑的推理理论”.
2)学习JQ中有关ajax的使用,load(url,[要传给服务器的data],[callback]). 之前两天学习了JQ中有关Effects特效。 包括显示、隐藏show([time:millsecond],[callback]), hide([time],[callback]),toggle([time],[callback]),滚动显示、滚动隐藏slideDown([time],[callback]),slideUp([time],[callback]),slideToggle([time],[callback]),淡入淡出fadeIn([time],[callback]),fadeOut([time],[callback]),fadeTo(time,opacity,[callback]),以及最强大的自定义动画animate(params,[duration],[callback]),其中params可以是一个对象字面量,这样就可以实现移动位置、队列动画。 动画停止用stop([clearQueue:boolean],[gotoEnd:boolean]),延迟动画用delay(duration:millsecond,[queueName])。
3)盗墓笔记看至第二部《怒海潜沙》
4)12点40团员推优工作会议,下午1点时尚界例会。