<?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/tag/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://618119.com</link>
	<description>工作,生活,java,apache,tomcat,Resin,mina,Hessian,Openfire,XMPP,RPC,Ubuntu</description>
	<lastBuildDate>Sat, 21 Aug 2010 08:34:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>将google托管的ajax js文件同步到本地服务器</title>
		<link>http://618119.com/archives/2010/04/14/164.html</link>
		<comments>http://618119.com/archives/2010/04/14/164.html#comments</comments>
		<pubDate>Wed, 14 Apr 2010 13:14:25 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://618119.com/?p=164</guid>
		<description><![CDATA[google提供了供全世界访问的公共javascript库托管，
参考：http://code.google.com/intl/zh-CN/apis/ajaxlibs/
只要使用 &#60;script src=&#8221;http://www.google.com/jsapi&#8221;&#62;&#60;/script&#62; 引用google的js，
然后使用 google.load() 方法，就可以指定载入对应库的对应版本。 例如：google.load(&#8220;jquery&#8221;, &#8220;1&#8243;);
就可以载入当前最新的jquery库。

虽然google承诺无限期地托管各版本的js文件，但是由于大部分人知道的原因，在国内使用这种方式共享js资源存在一定风险。
因此，我参考google对这些js的部署结构，将js下载回来放到了本地服务器。

目前托管的js库有以下组件：
jQuery
jQuery  UI
Prototype
script.aculo.us
MooTools
Dojo
SWFObject
Yahoo! 用户界面库 (YUI)
Ext Core
全部都同步下来，操作步骤如下：
先在Firefox里打开：
http://www.google.com/jsapi
然后将js保存到成本地文件，然后用Aptana打开，并格式化，然后找到
google.loader.rpl，然后把括号里一段json对象复制出来，定义成  var jslibs;
然后通过js生成对应js的url。然后使用java下载到本地保存到对应目录。
代码参考：
&#60;SCRIPT LANGUAGE=&#8221;JavaScript&#8221;&#62;
&#60;!&#8211;
var jslibs={
&#8220;:jquery&#8221; : {
&#8220;versions&#8221; : {
&#8220;:1.2.3&#8243; :  {
&#8220;uncompressed&#8221; : &#8220;jquery.js&#8221;,
&#8220;compressed&#8221; :  &#8220;jquery.min.js&#8221;
},
&#8220;:1.3.1&#8243; : {
&#8220;uncompressed&#8221; :  &#8220;jquery.js&#8221;,
&#8220;compressed&#8221; : &#8220;jquery.min.js&#8221;
},
&#8220;:1.3.0&#8243; :  {
&#8220;uncompressed&#8221; : &#8220;jquery.js&#8221;,
&#8220;compressed&#8221; :  &#8220;jquery.min.js&#8221;
},
&#8220;:1.3.2&#8243; : {
&#8220;uncompressed&#8221; :  &#8220;jquery.js&#8221;,
&#8220;compressed&#8221; : &#8220;jquery.min.js&#8221;
},
&#8220;:1.2.6&#8243; :  {
&#8220;uncompressed&#8221; : &#8220;jquery.js&#8221;,
&#8220;compressed&#8221; [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2010/04/14/164.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;
}
function checkId(){
var code=document.getElementById("idCode").value;
if(code==null &#124;&#124; ( code.length!=15 &#38;&#38; code.length!=18)){
alert("请输出正确长度的身份证号码！");
return;
}
var xzqhCode=code.substr(0,6);
var xzqhName=getName(xzqhCode);
//先判断行政区划信息
if(xzqhName==null){
alert("没有该身份证号码的地区信息，很可能是假身份证号码！");
return;
}
//再判断是否都是数字和X.
for(var i=0;i&#60;code.length;i++){
if(i&#60;17){
if(code.charAt(i)&#62;"9" &#124;&#124; code.charAt(i)&#60;"0"){
alert("你输入的身份证号码有误，可能是假身份证号码！");
return;
}
}
if(i==17){//盘判断第17位
if(! ( (code.charAt(i) &#62;= "0" &#38;&#38; code.charAt(i) &#60;= "9" )&#124;&#124; code.charAt(i)=='X' &#124;&#124; code.charAt(i)=='x') ){
alert("你输入的身份证号码有误，可能是假身份证号码！");
return ;
}
}
}
var year=1900;//出生年
var month=1;//出生月
var [...]]]></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;
}
[/code]
数据节选：
110000&#124;北京市
110100&#124;北京市市辖区
110101&#124;北京市市辖区东城区
110102&#124;北京市市辖区西城区
110103&#124;北京市市辖区崇文区
110104&#124;北京市市辖区宣武区
110105&#124;北京市市辖区朝阳区
110106&#124;北京市市辖区丰台区
110107&#124;北京市市辖区石景山区
110108&#124;北京市市辖区海淀区
110109&#124;北京市市辖区门头沟区
110111&#124;北京市市辖区房山区
110112&#124;北京市市辖区通州区
110113&#124;北京市市辖区顺义区
110114&#124;北京市市辖区昌平区
110115&#124;北京市市辖区大兴区
110116&#124;北京市市辖区怀柔区
110117&#124;北京市市辖区平谷区
110200&#124;北京市县
110228&#124;北京市密云县
110229&#124;北京市延庆县
120000&#124;天津市
120100&#124;天津市市辖区
120101&#124;天津市市辖区和平区
120102&#124;天津市市辖区河东区
120103&#124;天津市市辖区河西区
120104&#124;天津市市辖区南开区
120105&#124;天津市市辖区河北区
120106&#124;天津市市辖区红桥区
120107&#124;天津市市辖区塘沽区
120108&#124;天津市市辖区汉沽区
120109&#124;天津市市辖区大港区
120110&#124;天津市市辖区东丽区
120111&#124;天津市市辖区西青区
120112&#124;天津市市辖区津南区
120113&#124;天津市市辖区北辰区
120114&#124;天津市市辖区武清区
120115&#124;天津市市辖区宝坻区
120200&#124;天津市县
120221&#124;天津市宁河县
120223&#124;天津市静海县
120225&#124;天津市蓟县

	Tags: gis, javascript, 行政区划

	Related posts
	
	获取公开的中国地图信息和使用MapBasic提取MapInfo地图资源信息 (0)
	用JavaScript为OpenLayers.Marker的加上单击显示详细信息的功能 (0)
	深圳的几个办事地点的位置及相关公交路线 (0)
	将google托管的ajax js文件同步到本地服务器 (1)
	在geoserver和Mapinfo中过滤重复显示的标注 (1)


]]></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
&#62; server 202.96.128.86
DNS request timed out.
timeout was 2 seconds.
Default Server:  [202.96.128.86]
Address:  202.96.128.86
&#62; server 202.96.128.86
Default Server:  cache-a.guangzhou.gd.cn
Address:  202.96.128.86
&#62; set q=cname
&#62; www.google.com
Server:  cache-a.guangzhou.gd.cn
Address:  202.96.128.86
Non-authoritative answer:
www.google.com  canonical [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/01/29/68.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用JavaScript为OpenLayers.Marker的加上单击显示详细信息的功能</title>
		<link>http://618119.com/archives/2008/01/25/67.html</link>
		<comments>http://618119.com/archives/2008/01/25/67.html#comments</comments>
		<pubDate>Fri, 25 Jan 2008 01:09:11 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[geoserver]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[OpenLayers]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2008/01/25/67.html</guid>
		<description><![CDATA[ 代码实现的效果为：
用于显示时，在地图上标记出对应的坐标，单击该标注时显示详细信息，再单击标注，隐藏详细信息，
/*
标记地区
参数 deleteEnable 是否允许删除
adminCode 行政区号，6位长
alarmLevel 图标级别
alarmMsg 消息
*/
function lzbmarkArea(deleteEnable, adminCode,alarmLevel,alarmMsg){
var isSelected=0;
var lonLatx=112;
var lonLaty=22.5;
var adminName=&#8221;";
if(!alarmMsg){alarmMsg=&#8221;"};
for(var i=0;i&#60;=gdareainfo.length;i++){
if(gdareainfo[i]==adminCode){
lonLatx=gdareainfo[i-2];
lonLaty=gdareainfo[i-1]+0.5;
adminName=gdareainfo[i+1];
}
}
if(adminName==&#8221;") {
//alert(&#8216;no info &#8216;);
return;
};
for(var j = markers.markers.length-1; j &#62;=0 ; j&#8211;){
if(adminCode == markers.markers[j].adminCode)
{
markers.removeMarker(markers.markers[j]);
}
}
var size = new OpenLayers.Size(50,50);
var calculateOffset = function(size) {
return new OpenLayers.Pixel(-(size.w/2), -size.h);
};
var icon = new OpenLayers.Icon(getAlarmLevelImg(alarmLevel),
null,null,null);
// size, null, calculateOffset);
//var marker =new OpenLayers.Marker(map.getLonLatFromPixel(e.xy), icon);//显示到当前点中的坐标
var marker =new OpenLayers.Marker(new OpenLayers.LonLat(lonLatx, lonLaty), icon);//显示到县市的中心点
marker.adminCode=adminCode;
marker.adminName=adminName;
marker.showLabel=true;
marker.labelStr=&#8221;";
//显示文本标签信息。
marker.text = marker.adminName+&#8221;(&#8220;+marker.adminCode+&#8221;)&#8221;;
if(alarmMsg!=&#8221;")
{
marker.text= [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/01/25/67.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
4.在wp-content/themes/default/single.php中加上
&#60;script class=&#8221;javascript&#8221; src=&#8221;/wp-content/plugins/google-syntax-highlighter/Scripts/highlighter.js&#8221;&#62;&#60;/script&#62;
这行加在 &#60;?php get_footer(); ?&#62; 的前面.
这样就实现了纯js的 语法高亮,且不对现有的可视化编辑造成影响,也支持用户在禁止了 Javascript的情况下正常浏览.
由于使用的动态增加css和js,因此对于禁止Javascript的情况下,浏览速度非常快,和没启用语法高亮一样.
我写的js代码大致有:
[code]
//如果存在code标记,则加载语法高亮的JavaScript
var codeTag="code";//code标记名
var highlighterUriPerfix="/wp-content/plugins/google-syntax-highlighter/";
var postElement=null;
//找到class 为 entry的对象进行处理
var tags=document.getElementsByTagName("div"); // class 为 entry
for(var i = 0; [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2007/11/28/32.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>在 Spket IDE 1.6.4 中使用 Ext 2.0</title>
		<link>http://618119.com/archives/2007/10/22/12.html</link>
		<comments>http://618119.com/archives/2007/10/22/12.html#comments</comments>
		<pubDate>Mon, 22 Oct 2007 10:11:25 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[JAVA IDE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Ext]]></category>
		<category><![CDATA[Extjs]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Spket]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2007/10/22/12.html</guid>
		<description><![CDATA[ Spket是个非常优秀的javascript开发工具，Ext则是非常优秀的javascript库。
在 Spket IDE 1.6.4中使用Ext 2.0 .
1.下载:
http://www.spket.com/downloads/spket-1.6.4.1.jar
引用页 http://www.spket.com/download.html
http://extjs.com/deploy/ext-2.0-beta1.zip
引用页 http://extjs.com/download
2.运行 java -jar spket-1.6.4.1.jar进行安装
3.解压ext-1.1.1.zip
4.启动 Spket IDE,
5.new Project &#8220;testExt&#8221;, new File &#8220;test.js&#8221;
6.将ext-all.js 复制到D:\Documents and Settings\lizongbo\workspace\testExt
7.然后再在test.js里开头加上
/**
* @include &#8220;/testExt/ext-all.js&#8221;
*/
testExt为项目名字.
然后再在test.js里写代码就有ext的提示了.
输入Ext,然后按 Alt +/ ，就可以看到语法提示。

	Tags: Ext, Extjs, javascript, Spket

	Related posts
	
	用JavaScript为OpenLayers.Marker的加上单击显示详细信息的功能 (0)
	整理行政区划数据的几个操作步骤 (0)
	将google托管的ajax js文件同步到本地服务器 (1)
	参考Google Syntax Highlighter for WordPress 定制纯Javascript实现的代码语法高亮 (1)
	关于分布式负载均衡的几个设置 (0)


]]></description>
		<wfw:commentRss>http://618119.com/archives/2007/10/22/12.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
