<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>寂静的深海 &#187; ajax</title>
	<atom:link href="http://www.deepseath.com/?feed=rss2&#038;tag=ajax" rel="self" type="application/rss+xml" />
	<link>http://www.deepseath.com</link>
	<description></description>
	<lastBuildDate>Mon, 29 Jan 2024 09:55:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>PHP的json数据编译和解译，字符编码无关。</title>
		<link>http://www.deepseath.com/?p=1016</link>
		<comments>http://www.deepseath.com/?p=1016#comments</comments>
		<pubDate>Fri, 11 Nov 2011 03:23:48 +0000</pubDate>
		<dc:creator>Deepseath</dc:creator>
				<category><![CDATA[实验室]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[中文]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://www.deepseath.com/?p=1016</guid>
		<description><![CDATA[这里只就PHP5.2.0+以上版本而言，因为JSON扩展是自PHP5.2.0才开始引入的。早期版本没有默认引入。 json现在应用比较广泛，主要是由于ajax技术的原因。json可以很方便的传输具有属性的数据格式，方便前端进行解析处理，更好的将数据流量传输降低并且也能使前后端尽可能的分离。 貌似自06年开始我在做的项目如果客户不强烈要求的情况下，我都会使用UTF-8进行编码开发，UTF-8开发会有很多好处，比如前、后端数据传输很方便无须额外的编码开销，另外储存的字符也比较直观，虽然有数据容量的浪费，但在目前储存如白菜价的环境下，容量问题应该不大。 在使用UTF-8编码的时候，json_encode/json_decode可以很方便的处理（虽然编译后的数据中的中文看起来很怪异，但因为也不需要直接使用数据所以也无所谓），因为PHP自带的json扩展库只支持UTF-8编码。 但有的时候客户强烈选择使用GBK/GB2312进行编码的情况下，自带的json就应付不了了。所有涉及到中文的经过编译后会变成null。 在不考虑使用第三方的扩展或者其他类库处理的情况，可以自己写一个变形函数来处理。 原理其实就是将数据的字符进行编码，比如使用rawurlencode()、urlencode()或者base64_encode()等函数进行编码，然后输出的时候再进行解码。 当然了，也可以用另一种途径，就是直接将数据字符进行编码转换，统一转换为UTF-8，然后使用json扩展函数进行处理，不过，这样处理可能会有一些意外发生（比如字符编码错误），另外，程序内的几个字符编码间来回转换看起来也不太好。 我处理的时候，利用urlencode进行编码（其实也可以使用rawurlencode()或base64_encode()，不过base64编码容量会比较大一些）。一般就是重写几个函数：json_encode()、json_decode()、ulrencode()、urldecode()。 首先要重写一下urlencode()和urldecode()，因为php自带的这两个函数只能对字符串进行处理，对于数组无法处理。而我们大多情况下其实就是处理数组。 其次要重写json_encode()和json_decode()，主要是将字符串编码进行还原，其实如果是js需要的话，可以不用重写。 主要代码： function djson_encode($data){ //重写json_encode，将数据使用urlencode进行编码 return json_encode(durlencode($data)); } function djson_decode($data){ $data = json_decode($data,true); $out = array(); foreach ( $data AS $key=&#62;$value ) { $out[durldecode($key)] = durldecode($value); } return $out; } function durldecode($string){ if ( is_array($string) ) { $array = array(); foreach ( $string AS $key=&#62;$value [...]]]></description>
		<wfw:commentRss>http://www.deepseath.com/?feed=rss2&#038;p=1016</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(转)Web 前端优化最佳实践之内容篇</title>
		<link>http://www.deepseath.com/?p=209</link>
		<comments>http://www.deepseath.com/?p=209#comments</comments>
		<pubDate>Tue, 24 Jun 2008 14:48:59 +0000</pubDate>
		<dc:creator>Deepseath</dc:creator>
				<category><![CDATA[日积月累]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[css sprites]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[服务器]]></category>

		<guid isPermaLink="false">http://www.deepseath.com/?p=209</guid>
		<description><![CDATA[Yahoo! 的 Exceptional Performance team 在 Web 前端方面作出了卓越的贡献。广为人知的优化规则也由 13 条到 14 条，再到 20 条，乃至现在的 34 条&#8211;真是与时俱进啊。最新的 34 条也针对不同的角度做了分类。面向内容的优化规则目前有 10 条。 1. 尽量减少 HTTP 请求 (Make Fewer HTTP Requests) 作为第一条，可能也是最重要的一条。根据 Yahoo! 研究团队的数据分析，有很大一部分用户访问会因为这一条而取得最大受益。有几种常见的方法能切实减少 HTTP 请求： 1) 合并文件，比如把多个 CSS 文件合成一个； 2) CSS Sprites 利用 CSS background 相关元素进行背景图绝对定位；参见：CSS Sprites: Image Slicing&#8217;s Kiss of Death 3) 图像地图 4) 内联图象 使用 [...]]]></description>
		<wfw:commentRss>http://www.deepseath.com/?feed=rss2&#038;p=209</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
