<?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>呼噜猫</title>
	<atom:link href="http://hulucat.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://hulucat.com</link>
	<description>记录快乐生活</description>
	<lastBuildDate>Fri, 27 Apr 2012 15:14:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>html5 webview的本地存储优化</title>
		<link>http://hulucat.com/tech/html5-webview%e7%9a%84%e6%9c%ac%e5%9c%b0%e5%ad%98%e5%82%a8%e4%bc%98%e5%8c%96/</link>
		<comments>http://hulucat.com/tech/html5-webview%e7%9a%84%e6%9c%ac%e5%9c%b0%e5%ad%98%e5%82%a8%e4%bc%98%e5%8c%96/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 15:09:31 +0000</pubDate>
		<dc:creator>0000</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://hulucat.com/?p=792</guid>
		<description><![CDATA[最近接了一个需求，是一个内嵌在webview里的类似于照片墙的页面。可以想见，这样的一个页面在3g甚至是2g的网络环境下，访问速度该面临多大的挑战。利用一些前端优化的技术，最近做了一些尝试，在这里小结一下。 先看一下这样一个页面的组成。一些js，css，若干张图片，还有一个初始化html请求。 首先来说主干流程。为了让用户及早看到内容，我们这样安排页面的加载： 首先展示上一次看过的图片内容； 此时，发送ajax请求到服务器，获取最新的图片url们； 在ajax请求完毕时，加载新的图片。 好，上面是最基本的思路。首先，我们需要让第一个请求，也就是html请求尽快完成，最快的方式也许莫过于保存在本地了。这里，可以使用html5的cache manifest。 &#60;html manifest=&#8217;/pic_wall.manifest&#8217;&#62; manifest内部可以这样写： CACHE MANIFEST #version 1 /pic_wall.php /img/web_view/iphone/loading.jpg /js/jq.mobi.min.js /js/wv_common.js /js/backbone_json2_underscore_min.js /js/pic_wall.js NETWORK: * 唯一需要注意的是version这一行，虽然是注释，但是可以用来指定manifest的版本。假设我们修改了其中一个js，需要告诉客户端及时更新，就可以把version改为2。 这样，在一般情况下，使用chrome，safari之类的浏览器就可以测试成功了。但是在iphone 5.1上使用safari测试时，会有一个错误提示，说pic_wall.manifest在下载时的mimetype不正确，是text/plain。这就要修改http服务器的mime type配置了，把manifest后缀的请求设置为text/cache-manifest类型就可以了。 好，现在我们把目光转向js和css。这俩家伙虽然已经列在了manifest文件中，但是当我们点击浏览器的刷新按钮时，他们仍然会向服务器发起一次请求，得到一个304后才安心走到下一步。这个现象根据浏览器的实现各有不同，尤其是在android webview下不太可靠。在移动网络环境下，这些304请求也是相当费时的——每次网络连接都会花掉不少时间。怎么消除这些304呢，这个比较简单，以apache为例，使用一个mod_expires模块，给js和css类型的请求加上etag和max-age就可以了。另外，为了让第一次下载快一点，还可以设置apache使用gzip encoding来下发。 好了，页面上看得见的就只剩下图片没说了。在这种应用中，图片有时候是动态生成的，比如根据需要裁切的，这就要在图片服务器端加上一些缓存header，比如etag和max-age，来达到浏览器端缓存的目的。 现在，所有的内容都可以缓存在浏览器了，但是，图片不应该是写死在页面上的，它们应当是由页面从服务器请求下来src、然后拼装放在dom里的。这个规定图片墙组织结构的请求，我们用一个ajax来完成。ajax请求从服务器端下载到一个描述着图片墙内容的json，然后解析成图片的排版结构和图片src，并拼成dom放到页面上。 好，到此为止，页面已经可以完成流程了。但是，假设我们的图片墙内容是飞速变化的（比如这是一个海量用户正在上传的图片的展示墙），怎么样在用户下一次刷新页面时，让他有个飞速的体验呢？ 首先，要让他在刷新或者重新打开页面时，有基本的内容可以先看着，俗话说骑驴找马嘛。我们已经把html请求、js、css缓存在本地了，可是上一次看过的图片墙结构——那个json字符串没有。这里，我们可以使用html5 的localStorage来保存它：在下载之后，保存到localStorage里；js加载完后，从localStorage读取它并展示出来。用户就可以看到上一次看过的图片墙了。此时，再发起ajax请求，更新照片墙。 好，到此位置，在电脑的非ie浏览器上，已经可以完成我们的想法了；iphone上也可以；iphone的webview上也可以；但是，唯独android webview上还不行&#8230;&#8230; android webview需要做如下设置：   &#8230; <a href="http://hulucat.com/tech/html5-webview%e7%9a%84%e6%9c%ac%e5%9c%b0%e5%ad%98%e5%82%a8%e4%bc%98%e5%8c%96/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://hulucat.com/tech/html5-webview%e7%9a%84%e6%9c%ac%e5%9c%b0%e5%ad%98%e5%82%a8%e4%bc%98%e5%8c%96/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HTML加载提速思路</title>
		<link>http://hulucat.com/tech/html%e5%8a%a0%e8%bd%bd%e6%8f%90%e9%80%9f%e6%80%9d%e8%b7%af/</link>
		<comments>http://hulucat.com/tech/html%e5%8a%a0%e8%bd%bd%e6%8f%90%e9%80%9f%e6%80%9d%e8%b7%af/#comments</comments>
		<pubDate>Sun, 25 Mar 2012 10:11:55 +0000</pubDate>
		<dc:creator>0000</dc:creator>
				<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://hulucat.com/?p=788</guid>
		<description><![CDATA[坊间对于HTML的看法可谓一片大好。每个人都对它的通用性和简便津津乐道。提到它的缺点，都专注在浏览器能力和兼容性上，但很少人会提及它明显而致命的另一个缺陷：加载速度慢，尤其是在3G或者2.5G环境下。 对这个问题，最近听了几位先行者的分享，整理一下思路大致如下: 第一种，在使用APP加webview这种结构的情况下，深度整合二者。联网方面，APP除了自身的功能外，兼具着定制化浏览器的功能，页面联网时，实际上是通过APP的socket与服务器进行沟通，这样，长联接、更精简的请求协议都成为可能。内容方面，APP内置页面需要的js、css和html模板，打开页面时第一步实际上是在客户端本地进行的，之后js再活跃起来操作页面逻辑。页面模板资源变化时，可以根据设计好的逻辑下载更新。 在这种环境下，页面开发人员好比是在温室大棚里成长，冷风和雨夹雪都被保护壳挡在外面了。 可能大多数人都享受不到上面第一种环境，我们面对的是第二种。APP只做好自己的事，需要页面干活时，就调用内嵌的系统浏览器模块，任由页面自生自灭。况且，在纯html5的移动互联网结构下还根本没有本地APP存在呢。这时，优化就只有尝试把HTML5压榨到极致。可以尝试bigpipe的思路，先下载结构性页面内容和基本的js、CSS，然后通过Ajax加载逻辑内容。页面使用本地存储适当保留部分内容，这样下次加载就可以直接用了，甚至直接加载。但是浏览器端本地存储的大小和不可预期性值得考量。如果一个页面够复杂，可以试试websocket，以更简单的形式直接和服务器通信。 先试试第二种，作出效果来，再想办法演进第一种。或者，也许很快就有必要考虑纯粹的脱离APP的页面应用了。]]></description>
		<wfw:commentRss>http://hulucat.com/tech/html%e5%8a%a0%e8%bd%bd%e6%8f%90%e9%80%9f%e6%80%9d%e8%b7%af/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2012年3月7日</title>
		<link>http://hulucat.com/life/2012%e5%b9%b43%e6%9c%887%e6%97%a5/</link>
		<comments>http://hulucat.com/life/2012%e5%b9%b43%e6%9c%887%e6%97%a5/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 13:36:54 +0000</pubDate>
		<dc:creator>0000</dc:creator>
				<category><![CDATA[琐记]]></category>

		<guid isPermaLink="false">http://hulucat.com/?p=785</guid>
		<description><![CDATA[用backbone.js写的微笑网新版订单认领小交互终于有了雏形，希望能尽快完善、测试、上线。最近照猫画虎学backbone.js，虽然很累，但是也非常有喜悦感。这个前端技术百家争鸣的时代，让人越来越没有安全感。希望下周把写代码的过程整理一下，写一个笔记发出来。希望到时候没有改变想法：）。 我今天发现，每年的这个时节，我都特别容易悲观甚至颓废。表现在，感觉要做的事情太多，精力太分散，想要抛弃一些感觉不太重要的部分。也许是因为惊蛰？睡虫刚醒来也许就是这样吧。 这个季度，正常工作之外的主要精力要用来学习前端技术。我是个绝对的单进程、无线程的人，开车的时候只要和二丫说话，就立马表现出要追尾的趋势。 周末打算去爬个山，锻炼锻炼；下周和部门去摘草莓，下下周就更暖和了，惊蛰了，美好的春天来到了！]]></description>
		<wfw:commentRss>http://hulucat.com/life/2012%e5%b9%b43%e6%9c%887%e6%97%a5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>帮助他人的快乐</title>
		<link>http://hulucat.com/life/%e5%b8%ae%e5%8a%a9%e4%bb%96%e4%ba%ba%e7%9a%84%e5%bf%ab%e4%b9%90/</link>
		<comments>http://hulucat.com/life/%e5%b8%ae%e5%8a%a9%e4%bb%96%e4%ba%ba%e7%9a%84%e5%bf%ab%e4%b9%90/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 04:51:25 +0000</pubDate>
		<dc:creator>isabel</dc:creator>
				<category><![CDATA[琐记]]></category>

		<guid isPermaLink="false">http://hulucat.com/?p=782</guid>
		<description><![CDATA[近一周来，因微博求助血小板捐献的事，受到了非常大的心灵冲击。微博的万能固然是再一次得到证实，但真正意识到的是在这众生万象的世界上，美丽的心灵静悄悄地隐藏在各种面貌之下。 当我看到月牙地盘在微博里说“能帮助别人真快乐”的时候，忽然就好像真的明白了她的心情。不是没听过“助人为乐”这词，但它对我的意义更多来自教育，是人为地、在表象上修正了本恶的人性；但这时候，忽然就真的明白了。 我想我也要去多做一些有益于他人的事情了。不是因为“知恩应该图报”的道义，也不是因为“感激和感动”的心情，就只是为了“帮助别人会很快乐”的领悟。]]></description>
		<wfw:commentRss>http://hulucat.com/life/%e5%b8%ae%e5%8a%a9%e4%bb%96%e4%ba%ba%e7%9a%84%e5%bf%ab%e4%b9%90/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Memcache的单条大小限制</title>
		<link>http://hulucat.com/tech/memcache%e7%9a%84%e5%8d%95%e6%9d%a1%e5%a4%a7%e5%b0%8f%e9%99%90%e5%88%b6/</link>
		<comments>http://hulucat.com/tech/memcache%e7%9a%84%e5%8d%95%e6%9d%a1%e5%a4%a7%e5%b0%8f%e9%99%90%e5%88%b6/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 07:23:17 +0000</pubDate>
		<dc:creator>0000</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[memcache]]></category>

		<guid isPermaLink="false">http://hulucat.com/?p=779</guid>
		<description><![CDATA[今天发现一处memcache缓存没有存住，测试了一下，认定是这条缓存大小超长了。写代码测试，大小应该是限制在1M，从文档中查了一下，也是这个说法：slab中item的大小默认是1M。 解决这个问题的方法大概有三种： 修改memcache限制，使用-I（大写的i）启动。但是暂未找到不重启就实时修改的方法。 修改代码，减少放到缓存中的冗余文本，因为是旧代码，比较麻烦。 在存入缓存时，使用压缩选项。经过测试，这应该是最取巧的方法。缺点是掩盖了潜在问题（冗余内容多），浪费一些cpu，额外的好处可能是节省网络请求了。]]></description>
		<wfw:commentRss>http://hulucat.com/tech/memcache%e7%9a%84%e5%8d%95%e6%9d%a1%e5%a4%a7%e5%b0%8f%e9%99%90%e5%88%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>笔耕不辍</title>
		<link>http://hulucat.com/life/%e7%ac%94%e8%80%95%e4%b8%8d%e8%be%8d/</link>
		<comments>http://hulucat.com/life/%e7%ac%94%e8%80%95%e4%b8%8d%e8%be%8d/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 00:34:18 +0000</pubDate>
		<dc:creator>isabel</dc:creator>
				<category><![CDATA[琐记]]></category>

		<guid isPermaLink="false">http://hulucat.com/?p=776</guid>
		<description><![CDATA[话说拳不离手、曲不离口，三天不练就生了。写杂记可能也是一样，有事没事都应该磨叨两句，才不会越来越懒、越来越没啥可写。 可今天的确是没啥可写，就说说前天在某段言情小说里遇到的那句“人世几回伤往事，山形依旧枕寒流”。明明是一派轻松的快餐小说，忽然深沉了一把，搞得我措手不及。 贴个原诗感慨感慨： 西塞山怀古  刘禹锡 王浚楼船下益州，金陵王气黯然收。 千寻铁锁沈江底，一片降幡出石头。 人世几回伤往事？山形依旧枕寒流。 从今四海为家日，故垒萧萧芦荻秋。]]></description>
		<wfw:commentRss>http://hulucat.com/life/%e7%ac%94%e8%80%95%e4%b8%8d%e8%be%8d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>艰难困苦，玉汝于成，及其它励志口号</title>
		<link>http://hulucat.com/life/%e8%89%b0%e9%9a%be%e5%9b%b0%e8%8b%a6%ef%bc%8c%e7%8e%89%e6%b1%9d%e4%ba%8e%e6%88%90%ef%bc%8c%e5%8f%8a%e5%85%b6%e5%ae%83%e5%8a%b1%e5%bf%97%e5%8f%a3%e5%8f%b7/</link>
		<comments>http://hulucat.com/life/%e8%89%b0%e9%9a%be%e5%9b%b0%e8%8b%a6%ef%bc%8c%e7%8e%89%e6%b1%9d%e4%ba%8e%e6%88%90%ef%bc%8c%e5%8f%8a%e5%85%b6%e5%ae%83%e5%8a%b1%e5%bf%97%e5%8f%a3%e5%8f%b7/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 00:48:00 +0000</pubDate>
		<dc:creator>isabel</dc:creator>
				<category><![CDATA[琐记]]></category>

		<guid isPermaLink="false">http://hulucat.com/?p=774</guid>
		<description><![CDATA[        艰难困苦，玉汝于成。这是一个挺好用的词，在年终总结、表彰大会、励志动员里面可以尽情引用。不过“玉汝于成”这四个字不太好念，尤其是当站在聚光灯下面对一票听众时。对一些普通话比较普通的亲们来讲，可能跟“红凤凰、黄凤凰、粉红凤凰花凤凰”差不多。我就听到过一位练习了很久的业余主持人仍然念成“玉如与成”。         由此想到了那些公文讲话里特别受青睐的热门诗句和成语，比如“雄关漫道真如铁，而今迈步从头越”，又比如“长风破浪会有时，直挂云帆济沧海”，再比如“路漫漫其修远兮，吾将上下而求索”…… 其实很可以把这些都收集收集，搞个小本子记着，就像韩寒少年时代记下英语单词和典故一样，在需要卖弄的时候淡定一笑，从肚上的兜兜里produce出来。         假如这本子做得好了，还说不定能出本书呢，广大公务员和国有企业工作者们人手一本，从此再不担心长篇大论里少那么“点睛”一笔。]]></description>
		<wfw:commentRss>http://hulucat.com/life/%e8%89%b0%e9%9a%be%e5%9b%b0%e8%8b%a6%ef%bc%8c%e7%8e%89%e6%b1%9d%e4%ba%8e%e6%88%90%ef%bc%8c%e5%8f%8a%e5%85%b6%e5%ae%83%e5%8a%b1%e5%bf%97%e5%8f%a3%e5%8f%b7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>人怕出名猪怕壮</title>
		<link>http://hulucat.com/life/%e4%ba%ba%e6%80%95%e5%87%ba%e5%90%8d%e7%8c%aa%e6%80%95%e5%a3%ae/</link>
		<comments>http://hulucat.com/life/%e4%ba%ba%e6%80%95%e5%87%ba%e5%90%8d%e7%8c%aa%e6%80%95%e5%a3%ae/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 00:56:43 +0000</pubDate>
		<dc:creator>isabel</dc:creator>
				<category><![CDATA[琐记]]></category>

		<guid isPermaLink="false">http://hulucat.com/?p=772</guid>
		<description><![CDATA[    这话搞不好是真的。看韩寒的博客以及媒体对他与方舟子之间对战的评论，不禁感慨说这人要是出了名、千万道目光聚集之下，真是会手足无措，不知道该干什么好。干什么都能有理，干什么也都能有错，尤其别让人抓住了小辫子，哪怕是很小很小、谁头上都长的那种。     本想也看看方舟子是怎么说的，不过没见以这为名的博客，没见原文。我想我还是赞成“让作品说话”的观点。当年上大学的时候，老师说过一句话： Theories come and go. Only texts remain. 搁这事上也可以说成 Critics come and go. Only texts remain. 多少年过去，会发现对我们这些卑微的小人类来说最有意义的，是那些经典的文学作品、不能磨灭的文字。真有这样改变心灵的遗产留下来，又何必惧怕一时的攻击和批判呢。     向留下伟大文字的人们致敬。]]></description>
		<wfw:commentRss>http://hulucat.com/life/%e4%ba%ba%e6%80%95%e5%87%ba%e5%90%8d%e7%8c%aa%e6%80%95%e5%a3%ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>碎碎笑话</title>
		<link>http://hulucat.com/life/%e7%a2%8e%e7%a2%8e%e7%ac%91%e8%af%9d-4/</link>
		<comments>http://hulucat.com/life/%e7%a2%8e%e7%a2%8e%e7%ac%91%e8%af%9d-4/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 00:35:43 +0000</pubDate>
		<dc:creator>isabel</dc:creator>
				<category><![CDATA[琐记]]></category>

		<guid isPermaLink="false">http://hulucat.com/?p=770</guid>
		<description><![CDATA[（十二） 某日虫子开车，对面来车特别二，坐在后座上的弟弟说：“别它！” 虫答：“我又不是别克！” （十三） 好朋友的姐姐快生了，一对双胞胎，打算先把名字起了。 孩子姓郝，虫子出主意说：“生个龙凤胎，男的叫好伦哥，女的叫好丽友！”]]></description>
		<wfw:commentRss>http://hulucat.com/life/%e7%a2%8e%e7%a2%8e%e7%ac%91%e8%af%9d-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>立春登慕田峪</title>
		<link>http://hulucat.com/travel/%e7%ab%8b%e6%98%a5%e7%99%bb%e6%85%95%e7%94%b0%e5%b3%aa/</link>
		<comments>http://hulucat.com/travel/%e7%ab%8b%e6%98%a5%e7%99%bb%e6%85%95%e7%94%b0%e5%b3%aa/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 14:21:26 +0000</pubDate>
		<dc:creator>0000</dc:creator>
				<category><![CDATA[旅游]]></category>

		<guid isPermaLink="false">http://hulucat.com/?p=766</guid>
		<description><![CDATA[立春了，新的一年开始了。]]></description>
		<wfw:commentRss>http://hulucat.com/travel/%e7%ab%8b%e6%98%a5%e7%99%bb%e6%85%95%e7%94%b0%e5%b3%aa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

