<?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>lizongbo at 618119.com &#187; JavaScript</title>
	<atom:link href="http://618119.com/category/web/javascript-web/feed" rel="self" type="application/rss+xml" />
	<link>http://618119.com</link>
	<description>工作,生活,Android,前端,Linode,Ubuntu,nginx,java,apache,tomcat,Resin,mina,Hessian,XMPP,RPC</description>
	<lastBuildDate>Tue, 31 Jan 2012 14:25:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Android4.0系统浏览器支持window.performance API了</title>
		<link>http://618119.com/archives/2012/01/31/217.html</link>
		<comments>http://618119.com/archives/2012/01/31/217.html#comments</comments>
		<pubDate>Tue, 31 Jan 2012 14:25:11 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[前端开发]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://618119.com/?p=217</guid>
		<description><![CDATA[Android4.0系统浏览器支持window.performance API了 window.performance API是HTML5规范的一部分， window.performance规范的官方文档在： https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html 目前还是草稿阶段，中文介绍可以参考： http://www.cnblogs.com/_franky/archive/2011/11/07/2238980.html webkit的测试用例和属性列表可以参考： http://svn.webkit.org/repository/webkit/trunk/LayoutTests/fast//dom/Window/window-properties-performance.html http://svn.webkit.org/repository/webkit/trunk/LayoutTests/fast//dom/Window/window-properties-performance-expected.txt Android4.0系统自带的浏览器实现了这一规范，并且还扩展实现window.performance.memory。 通过JavaScript实际测试结果如下： window.performance.memory=[object MemoryInfo] window.performance.timing=[object PerformanceTiming] window.performance.navigation=[object PerformanceNavigation] window.performance.timing.connectStart=1328016452403 window.performance.timing.responseStart=1328016452403 window.performance.timing.domLoading=1328016453857 window.performance.timing.connectEnd=1328016452403 window.performance.timing.domInteractive=0 window.performance.timing.fetchStart=1328016452403 window.performance.timing.secureConnectionStart=0 window.performance.timing.domainLookupStart=1328016452403 window.performance.timing.responseEnd=0 window.performance.timing.requestStart=1328016452403 window.performance.timing.loadEventEnd=0 window.performance.timing.domComplete=0 window.performance.timing.redirectStart=0 window.performance.timing.unloadEventEnd=1328016453646 window.performance.timing.domContentLoadedEventStart=0 window.performance.timing.domContentLoadedEventEnd=0 window.performance.timing.domainLookupEnd=1328016452403 window.performance.timing.navigationStart=1328016452402 window.performance.timing.unloadEventStart=1328016453646 window.performance.timing.loadEventStart=0 window.performance.timing.redirectEnd=0 window.performance.navigation.redirectCount=0 window.performance.navigation.type=1 window.performance.navigation.TYPE_NAVIGATE=0 window.performance.navigation.TYPE_RELOAD=1 window.performance.navigation.TYPE_BACK_FORWARD=2 window.performance.navigation.TYPE_RESERVED=255 window.performance.memory.totalJSHeapSize=0 window.performance.memory.usedJSHeapSize=0 window.performance.memory.jsHeapSizeLimit=0 PS:Android从2.1版本还扩展实现了navigator.connection： 通过JavaScript测试结果如下： navigator.connection.type=4 navigator.connection.UNKNOWN=0 navigator.connection.ETHERNET=1 navigator.connection.WIFI=2 [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2012/01/31/217.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>从google的json接口获取地理位置信息的Java代码</title>
		<link>http://618119.com/archives/2011/05/05/209.html</link>
		<comments>http://618119.com/archives/2011/05/05/209.html#comments</comments>
		<pubDate>Thu, 05 May 2011 14:55:07 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[IP]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[cellid]]></category>
		<category><![CDATA[geo]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[lbs]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://618119.com/?p=209</guid>
		<description><![CDATA[从google的json接口获取地理位置信息的Java代码 google 提供了公开的接口，通过，这个接口，根据gps或基站信息或wifi热点信息来获取当前位置的地理信息. gps信息是经纬度，基站信息是基站的cellid等信息，wifi热点信息是wifi的mac地址是热点名字，信号强度等。 因此可以通过java程序获取相应信息，在LBS项目中可以用上： api接口定义描述在： http://code.google.com/p/gears/wiki/GeolocationAPI Java代码如下： [code] package com.lizongbo.geo; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.InetSocketAddress; import java.net.Proxy; import java.net.URL; import com.lizongbo.org.json.JSONArray; import com.lizongbo.org.json.JSONException; import com.lizongbo.org.json.JSONObject; /** * 从google的json接口获取地理位置信息的代码 * * @author lizongbo * */ public class GeoTest { /** * @param args * @throws Exception */ public static void main(String[] args) [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2011/05/05/209.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>使用zxing生成QRCode二维码,在Android的webview中调用条形码扫描</title>
		<link>http://618119.com/archives/2010/11/23/194.html</link>
		<comments>http://618119.com/archives/2010/11/23/194.html#comments</comments>
		<pubDate>Tue, 23 Nov 2010 13:41:14 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[前端开发]]></category>
		<category><![CDATA[QRCode]]></category>
		<category><![CDATA[zxing]]></category>
		<category><![CDATA[二维码]]></category>
		<category><![CDATA[条形码]]></category>

		<guid isPermaLink="false">http://618119.com/?p=194</guid>
		<description><![CDATA[使用zxing生成QRCode二维码,在Android的webview中调用条形码扫描 zxing是一个条形码和二维码生成及识别的java开源组件，QRcode的中文名字是：QR快速响应矩阵码。 1.下载zxing最新的包 到zxing的主页： http://code.google.com/p/zxing/ 下载 http://zxing.googlecode.com/files/ZXing-1.6.zip http://zxing.googlecode.com/files/BarcodeScanner3.52.apk 来源：http://code.google.com/p/zxing/downloads/list 其中BarcodeScanner3.5.2.apk是安装在Android操作系统的手机上的条码扫描器安装包。 条码扫描器的j2me版本下载地址为： http://zxing.org/w/BarcodeReader.jad http://zxing.org/w/BarcodeReader.jar 解压为： D:\Java\zxing-1.6 在dos窗口下进入到：D:\Java\zxing-1.6\core，然后运行ant命令进行编译 (必须先安装配置了ant。 ant最新版的下载地址为：http://ant.apache.org/bindownload.cgi 下载解压后在系统的环境变量中配置ANT_HOME：例如：ANT_HOME=D:\Java\apache-ant-1.7.0； Path中必须有ant的bin目录，例如： Path=D:\Java\jdk1.6.0_21\bin;D:\Java\apache-maven-2.0.9\bin;D:\Perl\site\bin;D:\ Perl\bin;D:\Java\apache-ant-1.7.0\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\ System32\Wbem;D:\Programs\svn-win32-1.5.4\bin;C:\Program Files\TortoiseSVN\bin;C :\Program Files\QuickTime\QTSystem\ ) 编译结果如下： D:\Java\zxing-1.6\core>ant Buildfile: build.xml clean: build: init: compile: [mkdir] Created dir: D:\Java\zxing-1.6\core\build [javac] Compiling 171 source files to D:\Java\zxing-1.6\core\build [jar] Building jar: D:\Java\zxing-1.6\core\core.jar BUILD SUCCESSFUL Total time: 6 [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2010/11/23/194.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>将wml转换成html的方法。</title>
		<link>http://618119.com/archives/2008/09/07/108.html</link>
		<comments>http://618119.com/archives/2008/09/07/108.html#comments</comments>
		<pubDate>Sun, 07 Sep 2008 08:07:56 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Xhtml]]></category>
		<category><![CDATA[FireFox]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[wml]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2008/09/07/108.html</guid>
		<description><![CDATA[Opera是直接支持wml的，但是有不少bug。 Firefox需要插件wmlbrowser来进行转换。 IE没法直接支持wml显示，但是有个在线转换的工具，通过中间代理的方式来获取内容，再通过js进行转换，效果一般。 今天在查看httpunit相关资料的时候，发现可以通过wmlbrowser的源代码，将wml转换成html，再借助httpunit的html支持， 来实现对wml的支持，因此实现针对wap网站的测试。 简单体验了一下， 首先下载，http://ftp.osuosl.org/pub/mozdev/wmlbrowser/wmlbrowser-0.7.18.xpi。 解压找到 wmlbrowser.jar，在从wmlbrowser.jar\content\wmlbrowser中提取wml.css，wml.js，wml.xsl三个文件。 写一个测试的wml，取名为test.xml 再第一行后面加上： &#60; ?xml-stylesheet href=&#8217;wml.xsl&#8217; type=&#8217;text/xsl&#8217; ? &#62; 编辑 wml.xsl，将 &#60;script type=&#8221;text/javascript&#8221; src=&#8221;chrome://wmlbrowser/content/wml.js&#8221;&#62;// hack&#60;/script&#62; &#60;link href=&#8221;chrome://wmlbrowser/content/wml.css&#8221; rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&#62; 改成 &#60;script type=&#8221;text/javascript&#8221; src=&#8221;wml.js&#8221;&#62;// hack&#60;/script&#62; &#60;link href=&#8221;wml.css&#8221; rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&#62; 然后保存。 用ie打开test.xml，可以看到wml被正常转换成html了。 由于wml.xsl，wml,js，wml.css是各浏览器通用的，因此照此思路，可以基于ie做一个同样的wmlbrowser插件。 相关参考： http://www.nabble.com/WML-support-for-httpunit-td9558351.html Tags: FireFox, html, Opera, wml, xsl]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/09/07/108.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>javascript实现身份证号码的验证</title>
		<link>http://618119.com/archives/2008/06/04/94.html</link>
		<comments>http://618119.com/archives/2008/06/04/94.html#comments</comments>
		<pubDate>Wed, 04 Jun 2008 15:48:50 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2008/06/04/94.html</guid>
		<description><![CDATA[整理了一份javascript对身份证进行验证的程序。 源文件在： http://618119.com/docs/gis/shenfenzheng.html javascript 代码为： function getName(code){ var name=xzqh[code]; if(name==null){ return name; } //如果不是00结尾的，则补上市名称，659000例外 429000,469000 if(code%100 != 0 &#38;&#38; (code-code%100)!=659000 &#38;&#38; (code-code%100)!=429000 &#38;&#38; (code-code%100)!=469000){ var cityName=xzqh[(code-code%100)]; if(cityName.length&#62;1){//过滤掉只有一个字的“县” name=cityName+name; } } //如果不是0000结尾的，再补上省名称 if(code%10000 != 0){ name=xzqh[(code-code%10000)]+name; } return name; } function genData(){ var str=""; for(code in xzqh){ //整理成竖线分隔的每行一条记录 str+=  ""+code  +"&#124;" +getName(code) +"\n"; } document.getElementById("soapres").value=str; } [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/06/04/94.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>整理行政区划数据的几个操作步骤</title>
		<link>http://618119.com/archives/2008/05/31/90.html</link>
		<comments>http://618119.com/archives/2008/05/31/90.html#comments</comments>
		<pubDate>Fri, 30 May 2008 17:58:40 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[gis]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[行政区划]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2008/05/31/90.html</guid>
		<description><![CDATA[1.数据来源： 中华人民共和国统计局官方网站： 最新县及县以上行政区划代码（截止2007年12月31日） http://www.stats.gov.cn/tjbz/xzqhdm/t20080215_402462675.htm 2.保存为文本文件。 3.使用EditPlus进行排序，再删除冗余信息 4.替换掉星号去掉 (*)和 (**) 5.替换空格，规整成javascript数组的形式. 需要替换的有&#8221; 县&#8221; ,空格个数从多到少的进行替换. 6.进行名称补全。 xxyyzz的，前面补上 xx0000和xxyy00的名字 然后xxyy00的，前面再补上xx0000的名字 这样每个行政区划代码对应的名称都是完整的了。 7.使用js进行控制，以生成各种想要的数据格式。 JavaScript代码在： http://618119.com/docs/gis/xzqh.html 整理好的数据文本在： http://618119.com/docs/gis/xzqh.txt 代码片段: [code] function getName(code){ var name=xzqh[code]; //如果不是00结尾的，则补上市名称，659000例外 429000,469000 if(code%100 != 0 &#38;&#38; (code-code%100)!=659000 &#38;&#38; (code-code%100)!=429000 &#38;&#38; (code-code%100)!=469000){ var cityName=xzqh[(code-code%100)]; if(cityName.length&#62;1){//过滤掉只有一个字的“县” name=cityName+name; } } //如果不是0000结尾的，再补上省名称 if(code%10000 != 0){ name=xzqh[(code-code%10000)]+name; } return name; } [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/05/31/90.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于分布式负载均衡的几个设置</title>
		<link>http://618119.com/archives/2008/01/29/68.html</link>
		<comments>http://618119.com/archives/2008/01/29/68.html#comments</comments>
		<pubDate>Tue, 29 Jan 2008 00:38:31 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[DNS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[负载均衡]]></category>
		<category><![CDATA[集群]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2008/01/29/68.html</guid>
		<description><![CDATA[服务器对外的展现要统一，简洁。 即用户在URL里看到的地址是很方便记忆的。 而对于页面中嵌入的图片，脚本，样式表，视频，音频等文件，则可以放在其它服务器上。 第一层： DNS记录轮询负载均衡 以 www.google.com为例进行分析 1.首先是将 www.google.com，指定多个cname,根据不同的网络线路请求得到不同的别名 比如在中国得到的别名为：www.l.google.com, www.l.google.com 的别名为： www-china.l.google.com www-china.l.google.com再指定多个ip的a记录， 例如 ip 64.233.189.99, 64.233.189.104,64.233.167.147. 99,104,147这三个ip分别实现ip别名绑定，即如果99这个ip挂了，104会自动接管该ip到本机。 通过这样的方式，保证用户最终访问到的ip始终在线。 在cname解析的地方，可以使用多层cname解析，以实现更细粒度的负载均衡并灵活切换。 假设当www-china.l.google.com下整个节点都断网了，则只需要将www.l.google.com指向www-usa.l.google.com这样就可以切换了。 （纯属猜测：指定了cname的域名，则不要再配置a记录，因为a记录的优先级比cname高。） dns解析过程记录如下： [code] E:\&#62;nslookup DNS request timed out. timeout was 2 seconds. *** Can't find server name for address 192.168.18.1: Timed out *** Default servers are not available Default Server:  UnKnown Address:  192.168.18.1 [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/01/29/68.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>参考Google Syntax Highlighter for WordPress 定制纯Javascript实现的代码语法高亮</title>
		<link>http://618119.com/archives/2007/11/28/32.html</link>
		<comments>http://618119.com/archives/2007/11/28/32.html#comments</comments>
		<pubDate>Wed, 28 Nov 2007 04:30:02 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[SyntaxHighlighter]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2007/11/28/32.html</guid>
		<description><![CDATA[Google Syntax Highlighter for WordPress. 是代码加亮插件,但是该插件与文章的可视化编辑存在冲突, 参考 : http://www.ajaxgo.org/press/?p=6 并且在 pre标签内如果写 xml代码,在可视化编辑的情况下,就会被SyntaxHighlighter转出一堆转码字符, 而在源代码模式下,如果浏览器禁用了 Javascript,则无法看到完整的xml内容. 加之我喜欢在代码里使用 [ code ] [ /code ] 这样用中括号的标记, SyntaxHighlighter却只支持 pre标记,于是我根据这个插件,针对自己的博客做了改造. 实现简洁方便的语法高亮,既不影响后台对文章的编辑效果,也不影响文章在启用javascript和禁用 Javascript两种情况下的显示. 实现的思路如下. 在显示文章的页面里, 通过Javascript动态查找到 class为entry的div,这个就是显示文章内容的地方了, 然后操作innerHtml,将[ code ]与 [ /code ]之间的html内容进行解析替换, 自动识别代码类型然后将其转换为 pre 标记,再调用dp.SyntaxHighlighter.HighlightAll(&#8216;code&#8217;),进行代码高亮. 我的具体操作步骤如下: 1.下载 http://downloads.wordpress.org/plugin/google-syntax-highlighter.1.5.1.zip (也可以直接下载 http://syntaxhighlighter.googlecode.com/files/SyntaxHighlighter_1.5.1.rar,不过需要调整一下相关目录 上传到服务器之后保持google-syntax-highlighter目录即可.) 2.解压上传到 http:///618119.com/wp-content/plugins/ (后台管理中不要启用插件) 3.编写三个js文件,并上传到服务器. highlighter.js  http://618119.com/wp-content/plugins/google-syntax-highlighter/Scripts/highlighter.js mySyntaxHighlighter.js http://618119.com/wp-content/plugins/google-syntax-highlighter/Scripts/mySyntaxHighlighter.js doSyntaxHighlighter.js http://618119.com/wp-content/plugins/google-syntax-highlighter/Scripts/doSyntaxHighlighter.js [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2007/11/28/32.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

