<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_布尔的cnblogs boolean</title><subtitle type="text">.net web developer boolean javascript ext prototype dom nvelocity nhibernate log4net spring.net aspect db4o json ioc aop objectbuilder mvc pattern workflow memcached Lucene unity LazyParser survey cms mef vss svn oa cms crm portal ofc gis projectmanager openflashchart gis mapguide osgi nodejs</subtitle><id>http://feed.cnblogs.com/blog/u/21264/rss</id><updated>2012-01-13T05:13:18Z</updated><author><name>布尔</name><uri>http://www.cnblogs.com/boolean/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/boolean/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/21264/rss"/><entry><id>http://www.cnblogs.com/boolean/archive/2012/01/13/2321485.html</id><title type="text">后短信集成时代</title><summary type="text">后短信集成时代，短信提醒（短信交互）功能基本上已经是一个日常应用系统的必备功能，当前的应用也做了一次这样的尝试。</summary><published>2012-01-13T05:13:00Z</published><updated>2012-01-13T05:13:00Z</updated><author><name>布尔</name><uri>http://www.cnblogs.com/boolean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/boolean/archive/2012/01/13/2321485.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/boolean/archive/2012/01/13/2321485.html"/><content type="html">&lt;p style="text-indent: 21pt"&gt;&lt;span style="font-family: 宋体"&gt;后短信集成时代，短信提醒（短信交互）功能基本上已经是一个日常应用系统的必备功能，当前的应用也做了一次这样的尝试。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt"&gt;1.&lt;span style="font-family: 宋体"&gt;移动部署的&lt;/span&gt;MAS&lt;span style="font-family: 宋体"&gt;包括两个部分，一是移动短信服务器网关的配置工具；二是供第三方调用的服务接口；&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/boolean/sms/image002.jpg" width="553" longdesc="" height="335" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; margin: 0cm 0cm 0pt" &gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;登录配置工具后管理界面一眼看去就是基于&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;Ext&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;做的，包括短信管理、彩信管理、用户管理、通讯录管理、插件管理、业务管理、应用管理、数据查询、日志下载、故障管理、语音管理、定位管理等。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; margin: 0cm 0cm 0pt" &gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; margin: 0cm 0cm 0pt" &gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/boolean/sms/image004.jpg" width="553" longdesc="" height="309" /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; margin: 0cm 0cm 0pt" &gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/boolean/sms/image006.jpg" width="553" height="309" /&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt"&gt;&lt;span style="font-family: 宋体"&gt;其中和我们关系比较紧密的是应用管理，因为这里面有我们调用其服务接口的必要参数应用&lt;/span&gt;ID&lt;span style="font-family: 宋体"&gt;。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt"&gt;&lt;span style="font-family: 宋体"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/boolean/sms/image008.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt"&gt;&lt;span style="font-family: 宋体"&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　访问&lt;/span&gt;&lt;font face="Times New Roman"&gt; &lt;span lang="EN-US"&gt;&lt;a href="http://192.164.2.10:8000/MASWebService.asmx"&gt;&lt;font color="#0000ff"&gt;http://192.164.2.10:8000/MASWebService.asmx&lt;/font&gt;&lt;/a&gt; &lt;/span&gt;&lt;/font&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;（企业内网才能访问，当然如果通过&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;vpn&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;接入口，则可以在外网调用）以下是其&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;WebService&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;接口界面&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/boolean/sms/image010.jpg" width="553" height="309" /&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体"&gt;　　在解决方案中添加引用生成本地代理类后，即可编程发送短信。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/boolean/sms/image012.jpg" width="553" height="487" /&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; margin: 0cm 0cm 0pt" &gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;当然这样的调用应该是独立与&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;Web&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;编程之外的，否则，你的应用系统将受制于&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;MAS&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;系统的健康状况，比如&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;MAS&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;服务性能很低或者不可用的时候，你的应用必将受到不可忍受的影响。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt; margin: 0cm 0cm 0pt" &gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/boolean/aggbug/2321485.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/boolean/archive/2012/01/13/2321485.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/boolean/archive/2012/01/13/2321469.html</id><title type="text">后VPN时代的集成实践</title><summary type="text">后VPN时代，随着操作系统和网络的发展，vpn越来越不作为一种接入企业内网的唯一、有效、快捷途径，然而就在这样的大背景下，我们还是在信息化建设与集成工作中遇见了一次vpn实践，用户采用的是DP Tech的软件产品，通过如下界面登录：</summary><published>2012-01-13T05:03:00Z</published><updated>2012-01-13T05:03:00Z</updated><author><name>布尔</name><uri>http://www.cnblogs.com/boolean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/boolean/archive/2012/01/13/2321469.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/boolean/archive/2012/01/13/2321469.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;后&lt;/span&gt;&lt;span lang="EN-US"&gt;VPN&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;时代，随着操作系统和网络的发展，&lt;/span&gt;&lt;span &gt;&lt;span lang="EN-US"&gt;vpn&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;越来越不作为一种接入企业内网的唯一、有效、快捷途径，然而就在这样的大背景下，我们还是在信息化建设与集成工作中遇见了一次&lt;/span&gt;&lt;span &gt;&lt;span lang="EN-US"&gt;vpn&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;实践，用户采用的是&lt;/span&gt;&lt;span lang="EN-US"&gt;DP Tech&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的软件产品，通过如下界面登录：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/boolean/image002.jpg" width="472" longdesc="" height="228" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt"&gt;&lt;span style="font-family: 宋体"&gt;登录后，系统自动进行虚拟拨号，连接成功后，&lt;/span&gt;Status&lt;span style="font-family: 宋体"&gt;显示为&lt;/span&gt;Connected&lt;span style="font-family: 宋体"&gt;，这样就把计算机接入到企业内网。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/boolean/image004.jpg" width="377" longdesc="" height="410" /&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/boolean/image006.jpg" width="377" longdesc="" height="410" /&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt" &gt;&lt;span &gt;&lt;span lang="EN-US"&gt;Vpn&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;后台可配置用户可以访问的企业内网资源，即&lt;/span&gt;&lt;span lang="EN-US"&gt;IP&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;地址和端口。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 21pt" &gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/boolean/image008.jpg" width="818" longdesc="" height="198" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/boolean/aggbug/2321469.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/boolean/archive/2012/01/13/2321469.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/boolean/archive/2011/11/25/2262905.html</id><title type="text">让你的程序动起来——支持动态更新或者热插拔</title><summary type="text">过去写了一个运行环境，支持以模块化的方式进行程序开发和管理，当时考虑做一个大项目的时候可以将独立的模块分配到多个开发小组并行进行，从而提高开发效率，实践过程中确实也达到了最初的设定目标。但是我们不会至此停留不前，经过一年的应用我们发现了一点问题，相信很多做项目的同僚都会发现，项目要随需而变不但要求框架本身易于扩展，还要求在运行时能够动态更新，要不然就只能等系统闲下来的时候再更新，这也是为什么很多人都选择夜里更新程序的原因（白天很多在线用户）。随需而变嘛，把模块的加载再改进一步，支持动态加载就OK了，更新模块的时候直接覆盖，系统监视文件变化，自动重新加载，用户完全感觉不到系统已经升级了。</summary><published>2011-11-25T03:37:00Z</published><updated>2011-11-25T03:37:00Z</updated><author><name>布尔</name><uri>http://www.cnblogs.com/boolean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/boolean/archive/2011/11/25/2262905.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/boolean/archive/2011/11/25/2262905.html"/><content type="html">&lt;p&gt;过去写了一个运行环境，支持以模块化的方式进行程序开发和管理，当时考虑做一个大项目的时候可以将独立的模块分配到多个开发小组并行进行，从而提高开发效率，实践过程中确实也达到了最初的设定目标。但是我们不会至此停留不前，经过一年的应用我们发现了一点问题，相信很多做项目的同僚都会发现，项目要随需而变不但要求框架本身易于扩展，还要求在运行时能够动态更新，要不然就只能等系统闲下来的时候再更新，这也是为什么很多人都选择夜里更新程序的原因（白天很多在线用户）。随需而变嘛，把模块的加载再改进一步，支持动态加载就OK了，更新模块的时候直接覆盖，系统监视文件变化，自动重新加载，用户完全感觉不到系统已经升级了。&lt;/p&gt;&#xD;
&lt;p&gt;改进主要涉及两个方面：&lt;/p&gt;&#xD;
&lt;p&gt;1.程序集的加载&lt;/p&gt;&#xD;
&lt;p&gt;要求程序集不能被占用，因为如果被Asp.net进程占用的话，覆盖文件会导致整个应用重新启动，这样就不能用原来的Assembly.LoadFrom了，替换的解决方法是Assembly.Load(byte[] rawAssembly)&lt;/p&gt;&#xD;
&lt;p&gt;2.监视模块更新变化&lt;/p&gt;&#xD;
&lt;p&gt;用系统自带的文件变化监视类FileSystemWatcher就可以实现&lt;/p&gt;&lt;img src="http://www.cnblogs.com/boolean/aggbug/2262905.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/boolean/archive/2011/11/25/2262905.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/boolean/archive/2011/10/10/2205381.html</id><title type="text">百度面试题第4题</title><summary type="text">结合jsFiddle，百度面试题第4题拓展开去，用js多种思路实现，分享给大家。</summary><published>2011-10-10T04:37:00Z</published><updated>2011-10-10T04:37:00Z</updated><author><name>布尔</name><uri>http://www.cnblogs.com/boolean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/boolean/archive/2011/10/10/2205381.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/boolean/archive/2011/10/10/2205381.html"/><content type="html">&lt;img src="http://www.cnblogs.com/boolean/aggbug/2205381.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/boolean/archive/2011/10/10/2205381.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/boolean/archive/2011/09/29/2195087.html</id><title type="text">金格科技iMsg2000消息数据格式</title><summary type="text">本文介绍的是金格科技iweboffice2003控件前端向服务器发请求后服务器解析数据流的过程，从中也可以了解其前端对数据的封装过程，不复杂很简单，挺不错的数据封装实例教程^_^。</summary><published>2011-09-29T01:27:00Z</published><updated>2011-09-29T01:27:00Z</updated><author><name>布尔</name><uri>http://www.cnblogs.com/boolean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/boolean/archive/2011/09/29/2195087.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/boolean/archive/2011/09/29/2195087.html"/><content type="html">&lt;p style="text-align: left; text-autospace: " align="left"&gt;&lt;span style="font-family: 宋体"&gt;本文介绍的是金格科技&lt;/span&gt;iweboffice2003&lt;span style="font-family: 宋体"&gt;控件前端向服务器发请求后服务器解析数据流的过程，从中也可以了解其前端对数据的封装过程，不复杂很简单，挺不错的数据封装实例教程&lt;/span&gt;&lt;span style="font-family: Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;。从数据流到格式化对象数据的转换（&lt;/span&gt;&lt;span style="font-family: NSimSun; font-size: 9.5pt"&gt;Stream -&amp;gt; Msg &lt;/span&gt;&lt;span style="font-family: 宋体"&gt;解析）过程就是从数据流中的固定大小头部开始按预定规定开始拆分：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; text-indent: -21pt; margin: 0cm 0cm 0pt 21pt; text-autospace: " align="left"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;头部大小为&lt;/span&gt;0x40&lt;span style="font-family: 宋体"&gt;，其中包含&lt;/span&gt;4&lt;span style="font-family: 宋体"&gt;个信息&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; text-indent: -21pt; margin: 0cm 0cm 0pt 42pt; text-autospace: " align="left"&gt;&lt;span&gt;a)&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;消息字节数&lt;/span&gt;num2&lt;/p&gt;&#xD;
&lt;p style="text-align: left; text-indent: -21pt; margin: 0cm 0cm 0pt 42pt; text-autospace: " align="left"&gt;&lt;span&gt;b)&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;错误信息字节数&lt;/span&gt;num3&lt;/p&gt;&#xD;
&lt;p style="text-align: left; text-indent: -21pt; margin: 0cm 0cm 0pt 42pt; text-autospace: " align="left"&gt;&lt;span&gt;c)&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;文件字节数&lt;/span&gt;num4&lt;/p&gt;&#xD;
&lt;p style="text-align: left; text-indent: -21pt; margin: 0cm 0cm 0pt 21pt; text-autospace: " align="left"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;根据第一步得到的消息字节数、错误信息字节数、正文字节数读取出对应的信息，即拆分完毕，如下图所示。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; text-autospace: " align="left"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/boolean/金格iweboffice2003消息数据格式.png" width="600" height="362" /&gt;&lt;/p&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 10.5pt"&gt;&lt;/span&gt; &lt;img src="http://www.cnblogs.com/boolean/aggbug/2195087.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/boolean/archive/2011/09/29/2195087.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/boolean/archive/2011/09/27/2193411.html</id><title type="text">基于Ext.Panel扩展一个BMap</title><summary type="text">百度的Map API已经很成熟了，而且用起来很方便，但是在ExtJS环境下简单包装一下用起来可以更舒服一些。</summary><published>2011-09-27T09:58:00Z</published><updated>2011-09-27T09:58:00Z</updated><author><name>布尔</name><uri>http://www.cnblogs.com/boolean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/boolean/archive/2011/09/27/2193411.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/boolean/archive/2011/09/27/2193411.html"/><content type="html">&lt;p&gt;百度的Map API已经很成熟了，而且用起来很方便，但是在ExtJS环境下简单包装一下用起来可以更舒服一些。&lt;/p&gt;&#xD;
&lt;p&gt;先看看包装后的效果吧：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/boolean/bmp.jpg" width="708" longdesc="" height="501" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;接下来就是怎么包的，代码分享：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #008000"&gt;/*&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;百度地图类&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;包含了对百度地图BMap.Map组件各类调用的封装&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;script&amp;nbsp;type="text/javascript"&amp;nbsp;language="javascript"&amp;nbsp;src="/modules/xt/js/BMap.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;eg:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;map&amp;nbsp;=&amp;nbsp;new&amp;nbsp;BeidaSoft.BMap({})&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;*/&lt;/span&gt;&lt;br /&gt;Ext.namespace("BeidaSoft")&lt;br /&gt;BeidaSoft.BMap&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(config)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BeidaSoft.BMap.superclass.constructor.call(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;,&amp;nbsp;config);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Ext.extend(BeidaSoft.BMap,&amp;nbsp;Ext.Panel,&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objectID:"BMap_",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;object:&amp;nbsp;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;border:&amp;nbsp;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:700,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:500,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;initComponent:&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;()&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.objectID&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.id&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;src&amp;nbsp;=&amp;nbsp;String.format("http://api.map.baidu.com/api?v=1.2&amp;amp;callback=Ext.getCmp('{0}').Initialize",&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.id);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;判断API是否已经加载成功还有更简单的方法，就是判断BMap对象是否存在&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;isLoaded&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;arrScript&amp;nbsp;=&amp;nbsp;document.getElementsByName("script");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;i=0;&amp;nbsp;i&amp;lt;arrScript.length;&amp;nbsp;i++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(arrScript.src[i]&amp;nbsp;==&amp;nbsp;src){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;isLoaded&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;break&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;保证只加载一次API脚本&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(!isLoaded){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;script&amp;nbsp;=&amp;nbsp;document.createElement("script");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;script.src&amp;nbsp;=&amp;nbsp;src&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.body.appendChild(script);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BeidaSoft.BMap.superclass.initComponent.call(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;初始化地图&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Initialize&amp;nbsp;:&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;map&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;BMap.Map(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.objectID);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;map.centerAndZoom(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;BMap.Point(116.388298,&amp;nbsp;39.928902),&amp;nbsp;5);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.object&amp;nbsp;=&amp;nbsp;map&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;获取BMap对象&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GetBMap:&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.object&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;currentPositionPoint:&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;移动到自己所在的位置&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PanToCurrentPosition:&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;bmap&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.GetBMap()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;geolocation&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;BMap.Geolocation()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;me&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;geolocation.getCurrentPosition(&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(geolocationResult){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.getStatus()&amp;nbsp;!=&amp;nbsp;BMAP_STATUS_SUCCESS){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("定位失败！")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;point&amp;nbsp;=&amp;nbsp;geolocationResult.point&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;me.currentPositionPoint&amp;nbsp;=&amp;nbsp;point&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmap.centerAndZoom(point,&amp;nbsp;11);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enableHighAccuracy:&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;timeout:5000,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;maximumAge:0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;currentPositionMarker:&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;显示我当前位置标注&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ShowCurrentPositionMarker:&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.currentPositionMarker&amp;nbsp;==&amp;nbsp;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;bmap&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.GetBMap()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;marker&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;BMap.Marker(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.currentPositionPoint);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;创建标注&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmap.addOverlay(marker);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;将标注添加到地图中&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.currentPositionMarker&amp;nbsp;=&amp;nbsp;marker&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;可以移动标注&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;marker.enableDragging();&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;marker.addEventListener("dragend",&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(e){&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;alert("当前位置："&amp;nbsp;+&amp;nbsp;e.point.lng&amp;nbsp;+&amp;nbsp;",&amp;nbsp;"&amp;nbsp;+&amp;nbsp;e.point.lat);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;隐藏我当前位置标注&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HideCurrentPositionMarker:&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.currentPositionMarker){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;bmap&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.GetBMap()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;marker&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.currentPositionMarker&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;创建标注&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmap.removeOverlay(marker);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;将标注添加到地图中&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;在地图中心位置增加一个标注&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AddOneMarkerAtCenter:&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;bmap&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.GetBMap()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;point4Center&amp;nbsp;=&amp;nbsp;bmap.getCenter()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;marker&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;BMap.Marker(point4Center);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;创建标注&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmap.addOverlay(marker);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;将标注添加到地图中&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;可以移动标注&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;marker.enableDragging();&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;marker.addEventListener("dragend",&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(e){&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;alert("当前位置："&amp;nbsp;+&amp;nbsp;e.point.lng&amp;nbsp;+&amp;nbsp;",&amp;nbsp;"&amp;nbsp;+&amp;nbsp;e.point.lat);&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;me&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;marker.addEventListener("rightclick",&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(type,&amp;nbsp;target){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;menu&amp;nbsp;=&amp;nbsp;me.GetMarkerMenu()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;menu.marker&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;menu.showAt([type.clientX,&amp;nbsp;type.clientY])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;增加菜单&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;markerMenu:&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GetMarkerMenu:&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;bmap&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.GetBMap()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.markerMenu&amp;nbsp;==&amp;nbsp;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;menu&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;Ext.menu.Menu({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;items:[&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text:"保存",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iconCls:&amp;nbsp;'kscp_c_icon_save'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text:"删除",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iconCls:&amp;nbsp;'kscp_c_icon_delete',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;handler:&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmap.removeOverlay(menu.marker)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.markerMenu&amp;nbsp;=&amp;nbsp;menu&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.markerMenu&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;onRender:&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(ct,&amp;nbsp;position)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BeidaSoft.BMap.superclass.onRender.apply(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;,&amp;nbsp;arguments);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;width&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.width&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;height&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.height&amp;nbsp;-&amp;nbsp;35&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;editorHTMLFormat&amp;nbsp;=&amp;nbsp;'&amp;lt;div&amp;nbsp;id="{0}"&amp;nbsp;style="width:{1}px;height:{2}px;"&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;editorHTML&amp;nbsp;=&amp;nbsp;String.format(editorHTMLFormat,&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.objectID,&amp;nbsp;width,&amp;nbsp;height)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.body.dom.innerHTML&amp;nbsp;+=&amp;nbsp;editorHTML&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;});&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/boolean/aggbug/2193411.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/boolean/archive/2011/09/27/2193411.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/boolean/archive/2011/09/26/2191624.html</id><title type="text">IE10预览：HTML5初探 翻译自Sencha</title><summary type="text">在过去的几年里我们做了一系列测试来评估主要的移动平台对HTML5应用的支持。直到现在，我们仍旧没有花时间在Windows phones上，主要因为Windows Phone7浏览器太弱根本不值得评估。但是，在上周的Windows Build会议上我们得到一个开发者预览的平板电脑（运行了Windows8和IE10）。我们想分享一下我们对HTML5用户体验的第一印象。简单的说（and with the caveat that we were running on the notably overpowered developer preview hardware），IE10的HTML5用户体验是我们接触到的所有平台上最好的。十年Web领域疲软后，微软复仇归来。</summary><published>2011-09-26T05:41:00Z</published><updated>2011-09-26T05:41:00Z</updated><author><name>布尔</name><uri>http://www.cnblogs.com/boolean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/boolean/archive/2011/09/26/2191624.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/boolean/archive/2011/09/26/2191624.html"/><content type="html">&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;IE10&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;预览：&lt;/span&gt;HTML5&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;初探&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体"&gt;在过去的几年里我们做了一系列测试来评估主要的移动平台对&lt;/span&gt;HTML5&lt;span style="font-family: 宋体"&gt;应用的支持。&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;直到现在，我们仍旧没有花时间在&lt;/span&gt;Windows phones&lt;span style="font-family: 宋体"&gt;上，主要因为&lt;/span&gt;Windows Phone7&lt;span style="font-family: 宋体"&gt;浏览器太弱根本不值得评估。但是，在上周的&lt;/span&gt;Windows Build&lt;span style="font-family: 宋体"&gt;会议上我们得到一个开发者预览的平板电脑（运行了&lt;/span&gt;Windows8&lt;span style="font-family: 宋体"&gt;和&lt;/span&gt;IE10&lt;span style="font-family: 宋体"&gt;）。我们想分享一下我们对&lt;/span&gt;HTML5&lt;span style="font-family: 宋体"&gt;用户体验的第一印象。简单的说（&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; color: #434343"&gt;and with the caveat that we were running on the notably overpowered developer preview hardware&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;），&lt;/span&gt;IE10&lt;span style="font-family: 宋体"&gt;的&lt;/span&gt;HTML5&lt;span style="font-family: 宋体"&gt;用户体验是我们接触到的所有平台上最好的。十年&lt;/span&gt;Web&lt;span style="font-family: 宋体"&gt;领域疲软后，微软复仇归来。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Windows8 Web &lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;平台&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体"&gt;在我们进入&lt;/span&gt;Win8&lt;span style="font-family: 宋体"&gt;和&lt;/span&gt;IE10&lt;span style="font-family: 宋体"&gt;对&lt;/span&gt;HTML5&lt;span style="font-family: 宋体"&gt;的支持细节之前，很值得回顾一下&lt;/span&gt;Windows8&lt;span style="font-family: 宋体"&gt;的一些概要。&lt;/span&gt;Windows8&lt;span style="font-family: 宋体"&gt;代表微软在策略上的一个大的转变，因为它使得&lt;/span&gt;Web&lt;span style="font-family: 宋体"&gt;技术成为&lt;/span&gt;Windows&lt;span style="font-family: 宋体"&gt;原生应用的首选。用&lt;/span&gt;Javascript&lt;span style="font-family: 宋体"&gt;、&lt;/span&gt;HTML&lt;span style="font-family: 宋体"&gt;、&lt;/span&gt;CSS&lt;span style="font-family: 宋体"&gt;开发的应用可以被构建为&lt;/span&gt;Windows&lt;span style="font-family: 宋体"&gt;原生应用了。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Windows&lt;span style="font-family: 宋体"&gt;的图形、&lt;/span&gt;IO&lt;span style="font-family: 宋体"&gt;、设备核心服务访问，&lt;/span&gt; JavaScript&lt;span style="font-family: 宋体"&gt;都有和&lt;/span&gt;.NET&lt;span style="font-family: 宋体"&gt;以及&lt;/span&gt;C++&lt;span style="font-family: 宋体"&gt;的等效绑定。微软的消息是你可以使用&lt;/span&gt;web&lt;span style="font-family: 宋体"&gt;技术构建所有的&lt;/span&gt;Windows&lt;span style="font-family: 宋体"&gt;原生应用。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体"&gt;那么，开发一个简单的基于&lt;/span&gt;web &lt;span style="font-family: 宋体"&gt;的在&lt;/span&gt;IE10&lt;span style="font-family: 宋体"&gt;上运行的应用和开发一个分发到&lt;/span&gt;Win8&lt;span style="font-family: 宋体"&gt;的原生应用有什么不同呢？第一个不同点就是你允许访问的资源和怎么访问他们。作为一个基于&lt;/span&gt;web&lt;span style="font-family: 宋体"&gt;的应用，你不能访问系统的保护资源如摄像头、打印机等。要把你的&lt;/span&gt;web&lt;span style="font-family: 宋体"&gt;应用打包成一个原生应用，你必须创建许可列表文件来描述你想访问的受保护资源，然后将你的应用提交到&lt;/span&gt;Windows&lt;span style="font-family: 宋体"&gt;的应用商店。提价后，它将被做一连串的技术和政策检查。尽管还没有完全确定，我们猜猜应用商店测试将会是微软在&lt;/span&gt;Windows&lt;span style="font-family: 宋体"&gt;平台的一个&lt;/span&gt;web&lt;span style="font-family: 宋体"&gt;技术评估部门。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;HTML5&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;支持&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;IE10&lt;span style="font-family: 宋体"&gt;里面的新特性有哪些呢？太多了，明显的部分包括&lt;/span&gt;UI&lt;span style="font-family: 宋体"&gt;元素和特效。&lt;/span&gt;IE10&lt;span style="font-family: 宋体"&gt;预览支持几乎所有最近三年引入可视化&lt;/span&gt;HTML5&lt;span style="font-family: 宋体"&gt;和&lt;/span&gt;CSS3&lt;span style="font-family: 宋体"&gt;特性。&lt;/span&gt;IE9&lt;span style="font-family: 宋体"&gt;微软已经注意了几个方面能力的提升如主要是硬件加速、画布等几个特性，但是&lt;/span&gt;IE10&lt;span style="font-family: 宋体"&gt;引入更多：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt"&gt;&lt;span style="font-family: Wingdings"&gt;n&amp;nbsp;&lt;/span&gt;CSS&lt;span style="font-family: 宋体"&gt;转变：&lt;/span&gt;2D&lt;span style="font-family: 宋体"&gt;和&lt;/span&gt;3D&lt;span style="font-family: 宋体"&gt;高效平滑转换。&lt;/span&gt;3D&lt;span style="font-family: 宋体"&gt;转换和抗锯齿很明显好于许多其他的浏览器。还有转换的平滑度给人印象深刻，可能是硬件加速的原因吧&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt"&gt;&lt;span style="font-family: Wingdings"&gt;n&amp;nbsp;&lt;/span&gt;CSS&lt;span style="font-family: 宋体"&gt;动画：完全支持&lt;/span&gt;WebKit&lt;span style="font-family: 宋体"&gt;语法，这让我们很机动，因为这意味着&lt;/span&gt;Sencha Animator&lt;span style="font-family: 宋体"&gt;的动画在&lt;/span&gt;IE10&lt;span style="font-family: 宋体"&gt;上运行起来很容易，只需要简单的查找替换（&lt;/span&gt;webkit&lt;span style="font-family: 宋体"&gt;替换为&lt;/span&gt;ms&lt;span style="font-family: 宋体"&gt;）即可&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt"&gt;&lt;span style="font-family: Wingdings"&gt;n&amp;nbsp;&lt;/span&gt;CSS3&lt;span style="font-family: 宋体"&gt;阴影：文本和盒子都支持（还包括插入物阴影）。合并阴影效果和其他特效将完美无瑕&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt"&gt;&lt;span style="font-family: Wingdings"&gt;n&amp;nbsp;&lt;/span&gt;CSS3&lt;span style="font-family: 宋体"&gt;倾斜：完全支持新的&lt;/span&gt;webki/mozilla&lt;span style="font-family: 宋体"&gt;语法，允许圆形和椭圆放射倾斜&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt"&gt;&lt;span style="font-family: Wingdings"&gt;n&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;这仅仅是一个开始。还有&lt;/span&gt;web workers&lt;span style="font-family: 宋体"&gt;、&lt;/span&gt;web sockets&lt;span style="font-family: 宋体"&gt;、&lt;/span&gt;web fonts&lt;span style="font-family: 宋体"&gt;、&lt;/span&gt;Indexed DB&lt;span style="font-family: 宋体"&gt;、&lt;/span&gt;SVG &lt;span style="font-family: 宋体"&gt;滤镜、&lt;/span&gt;flexbox&lt;span style="font-family: 宋体"&gt;布局等。好像只有图片边框没有实现。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;微软获得了几个第一&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体"&gt;在这些发布的&lt;/span&gt;UI&lt;span style="font-family: 宋体"&gt;特性中，&lt;/span&gt;IE10&lt;span style="font-family: 宋体"&gt;独创了一些在其他浏览器中还没有实现的，如&lt;/span&gt;&lt;span&gt;CSS Regions&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;、&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; color: #434343"&gt;positioned&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; color: #434343"&gt;&amp;nbsp;floats&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;。&lt;/span&gt;CSS Regions&lt;span style="font-family: 宋体"&gt;是一个&lt;/span&gt;Adobe&lt;span style="font-family: 宋体"&gt;做的一个草稿，它可以使报纸样式的布局，实现类似不规则插入、跨多列、让文本围绕浮动的图片。这些对于想在&lt;/span&gt;web&lt;span style="font-family: 宋体"&gt;上发行副本很有用。（最后，微软还推动&lt;/span&gt;grid layout&lt;span style="font-family: 宋体"&gt;，尽管这是其独家实现&amp;#8230;&amp;#8230;）&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;IE10&lt;span style="font-family: 宋体"&gt;也有一些针对触摸接口的扩展，控制元素滚动、移动、缩放。如，&lt;/span&gt;-ms-content-zooming CSS&lt;span style="font-family: 宋体"&gt;属性可以控制可缩放元素、&lt;/span&gt;-ms-scroll CSS&lt;span style="font-family: 宋体"&gt;属性可以滚动行为。这些看起来还不是标准行为，所以能看到微软起草覆盖这些新特性也是件好事。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;IE10&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;缺少的？&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体"&gt;有好几项&lt;/span&gt;HTML5&lt;span style="font-family: 宋体"&gt;技术没有出现在&lt;/span&gt;IE10&lt;span style="font-family: 宋体"&gt;里面，基于微软平台策略考虑，他们可能不会再出现在&lt;/span&gt;IE10&lt;span style="font-family: 宋体"&gt;里面了，&lt;/span&gt;WebGL&lt;span style="font-family: 宋体"&gt;很明显不在菜单里。&lt;/span&gt;3D&lt;span style="font-family: 宋体"&gt;图像，&lt;/span&gt;web&lt;span style="font-family: 宋体"&gt;开发者智能使用&lt;/span&gt;JavaScript&lt;span style="font-family: 宋体"&gt;绑定&lt;/span&gt;Windows Direct &lt;span style="font-family: 宋体"&gt;图形&lt;/span&gt; APIs&lt;span style="font-family: 宋体"&gt;并且只能将他们的应用作为&lt;/span&gt;Windows&lt;span style="font-family: 宋体"&gt;应用发布了。相应的媒体图像和设备&lt;/span&gt;APIs&lt;span style="font-family: 宋体"&gt;也永远不会出现了。这些就是微软希望你通过原生绑定来毁灭的&lt;/span&gt;APIs&lt;span style="font-family: 宋体"&gt;。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 15pt; margin: 12pt 0cm 4.5pt; vertical-align: baseline" align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Arial','sans-serif'; color: #314e64; font-size: 13.5pt"&gt;And What Will Ship&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; color: #314e64; font-size: 13.5pt"&gt;？&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体"&gt;我们对于&lt;/span&gt;Win8&lt;span style="font-family: 宋体"&gt;和&lt;/span&gt;IE10&lt;span style="font-family: 宋体"&gt;很机动，我们认为它结合了&lt;/span&gt;HTML5&lt;span style="font-family: 宋体"&gt;作为标准的跨平台应用开发技术。我们希望我们不再必须使用原生包来访问有趣的设备&lt;/span&gt;API&lt;span style="font-family: 宋体"&gt;，但是微软并不希望实现这些（策略考虑）。&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; color: #434343"&gt;The final, but major, caveat is whether all these technologies will retain their speed and performance when Windows 8 is squeezed onto next year&amp;#8217;s $299 tablets which are likely to have a GigaByte of memory and a lower-powered&lt;/span&gt;&amp;nbsp;&lt;span style="border-bottom: windowtext 1pt; border-left: windowtext 1pt; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; font-family: 'Arial','sans-serif'; color: #434343; border-top: windowtext 1pt; border-right: windowtext 1pt; padding-top: 0cm"&gt;ARM&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Arial','sans-serif'; color: #434343"&gt;processor.&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体"&gt;我们当然希望这样。&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/boolean/aggbug/2191624.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/boolean/archive/2011/09/26/2191624.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/boolean/archive/2011/05/10/2041772.html</id><title type="text">处理文章附件路径问题</title><summary type="text">/*一共有375篇带有附件的，刚好这些文章的最大长度（7482）都不超过8000个字符，因此可以使用以下脚本处理*/DECLARE@idINTDECLARE@contentVARCHAR(8000)DECLARECCURSORFORSELECT--TOP1ARTICLE_ID,--AR_CONTENT,CAST(AR_CONTENTASVARCHAR(8000))AScontent--,--LEN(CAST(AR_CONTENTASVARCHAR(8000)))LFROMdbo.BAP_CMS_ARTICLEWHERE1=1--ANDARTICLE_ID=145833ANDAR_CONTENT</summary><published>2011-05-09T23:53:00Z</published><updated>2011-05-09T23:53:00Z</updated><author><name>布尔</name><uri>http://www.cnblogs.com/boolean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/boolean/archive/2011/05/10/2041772.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/boolean/archive/2011/05/10/2041772.html"/><content type="html">&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #008080"&gt;/*&lt;/span&gt;&lt;span style="color: #008080"&gt;&lt;br /&gt;一共有375篇带有附件的，刚好这些文章的最大长度（7482）都不超过8000个字符，因此可以使用以下脚本处理&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;*/&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;DECLARE&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;@id&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;INT&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;DECLARE&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;@content&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold"&gt;8000&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;DECLARE&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;C&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;CURSOR&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;FOR&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080"&gt;--&lt;/span&gt;&lt;span style="color: #008080"&gt;TOP&amp;nbsp;1&lt;/span&gt;&lt;span style="color: #008080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ARTICLE_ID&amp;nbsp;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080"&gt;--&lt;/span&gt;&lt;span style="color: #008080"&gt;AR_CONTENT&amp;nbsp;,&lt;/span&gt;&lt;span style="color: #008080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;CAST&lt;/span&gt;&lt;span style="color: #000000"&gt;(AR_CONTENT&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;AS&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold"&gt;8000&lt;/span&gt;&lt;span style="color: #000000"&gt;))&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;AS&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;content&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080"&gt;--&lt;/span&gt;&lt;span style="color: #008080"&gt;,&lt;/span&gt;&lt;span style="color: #008080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080"&gt;--&lt;/span&gt;&lt;span style="color: #008080"&gt;LEN(CAST(AR_CONTENT&amp;nbsp;AS&amp;nbsp;VARCHAR(8000)))&amp;nbsp;L&lt;/span&gt;&lt;span style="color: #008080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dbo.BAP_CMS_ARTICLE&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;WHERE&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080"&gt;--&lt;/span&gt;&lt;span style="color: #008080"&gt;AND&amp;nbsp;ARTICLE_ID&amp;nbsp;=&amp;nbsp;145833&lt;/span&gt;&lt;span style="color: #008080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;AND&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AR_CONTENT&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;LIKE&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;&lt;span style="color: #ff0000"&gt;%InstallDir_ChannelDir%&lt;/span&gt;&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;OPEN&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;C&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;FETCH&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;NEXT&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;C&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;@id&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;@content&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;WHILE&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000; font-weight: bold"&gt;@@FETCH_STATUS&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;BEGIN&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080"&gt;--&lt;/span&gt;&lt;span style="color: #008080"&gt;PRINT&amp;nbsp;@content&lt;/span&gt;&lt;span style="color: #008080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;SET&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;@content&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;REPLACE&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #008000"&gt;@content&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;&lt;span style="color: #ff0000"&gt;[InstallDir_ChannelDir]{$UploadDir}&lt;/span&gt;&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;&lt;span style="color: #ff0000"&gt;/WebDeploy/UploadFiles&lt;/span&gt;&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080"&gt;--&lt;/span&gt;&lt;span style="color: #008080"&gt;PRINT&amp;nbsp;@content&lt;/span&gt;&lt;span style="color: #008080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;UPDATE&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;BAP_CMS_ARTICLE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;SET&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AR_CONTENT&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;@content&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;WHERE&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ARTICLE_ID&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;@id&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;FETCH&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;NEXT&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;C&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;@id&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;@content&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;END&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;CLOSE&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;C&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;DEALLOCATE&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;C&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/boolean/aggbug/2041772.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/boolean/archive/2011/05/10/2041772.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/boolean/archive/2011/02/09/1950265.html</id><title type="text">我的高中同学分布图</title><summary type="text">找了半天这里最最合适了。</summary><published>2011-02-09T08:16:00Z</published><updated>2011-02-09T08:16:00Z</updated><author><name>布尔</name><uri>http://www.cnblogs.com/boolean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/boolean/archive/2011/02/09/1950265.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/boolean/archive/2011/02/09/1950265.html"/><content type="html">&lt;p&gt;找了半天这里最最合适了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; width: 50%; float: left; height: 740px; border-top: gray 1px solid; border-right: gray 1px solid" id="container4baidumap"&gt;&lt;/div&gt;&#xD;
&lt;style&gt;&#xD;
#ulPerson li{float:left;}&#xD;
&lt;/style&gt;&#xD;
&#xD;
&lt;div style="width: 160px; float: left"&gt;&#xD;
&lt;ul style="width: 100%" id="ulPerson"&gt;&lt;/ul&gt;&lt;/div&gt;&#xD;
&lt;div id="info"&gt;&lt;/div&gt;&#xD;
&lt;div style="clear: both"&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/boolean/aggbug/1950265.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/boolean/archive/2011/02/09/1950265.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/boolean/archive/2010/12/14/1905430.html</id><title type="text">ExtJS4预览：渲染过程重构和标准化</title><summary type="text">在过去的四年，ExtJs代码库已经进化了，新组件被加进来，编码标准也改进了。在这个过程中，为了重构旧组件有必要经常追溯回去以保证他们也被改进。 在ExtJS4之前渲染组件没有标准的方式。在过去，Panels的展现过程是，首先创建他们需要的元素，并把他们直接添加到dom上，然后获取他们的引用。另一方面，利用按需autoEl DomHelper配置并包装对应的Html标签片段。在页面上表格经常被用作模板来构建他们的标记。 ExtJS4，我们的目标是统一这些方法为一个标准的方法，那就是XTemplate和DomQuery。这个标准允许开发者很容易针对弹性需求构建出强健的组件。这个标准将在所有我们的组件中使用。</summary><published>2010-12-14T05:17:00Z</published><updated>2010-12-14T05:17:00Z</updated><author><name>布尔</name><uri>http://www.cnblogs.com/boolean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/boolean/archive/2010/12/14/1905430.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/boolean/archive/2010/12/14/1905430.html"/><content type="html">&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在过去的四年，ExtJs代码库已经进化了，新组件被加进来，编码标准也改进了。在这个过程中，为了重构旧组件有必要经常追溯回去以保证他们也被改进。 &lt;/p&gt;&#xD;
&lt;p&gt;在ExtJS4之前渲染组件没有标准的方式。在过去，Panels的展现过程是，首先创建他们需要的元素，并把他们直接添加到dom上，然后获取他们的引用。另一方面，利用按需autoEl DomHelper配置并包装对应的Html标签片段。在页面上表格经常被用作模板来构建他们的标记。 &lt;/p&gt;&#xD;
&lt;p&gt;ExtJS4，我们的目标是统一这些方法为一个标准的方法，那就是XTemplate和DomQuery。这个标准允许开发者很容易针对弹性需求构建出强健的组件。这个标准将在所有我们的组件中使用。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;引入（介绍）renderTpl、renderData、renderSelector &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;ExtJS中的所有组件的展现都是基于一个基础的具有唯一ID的具有component类（cls\cmpCls\baseCls\ui）的div元素进行的。如果创建一个组件需要额外的元素，他们现在将被一个XTemplate（tenderTpl）处理。XTemplate的数据将从renderData对象读取，并且生成的元素可以通过组件实例的renderSelectors属性访问。renderSelectors的作用域是基于base div元素并且可以使用标准的css选择器。这些元素引用是组件生命周期的一部分，并且将在组件销毁时被自动移除。下面这个示例将帮助举例说明一个自定义组件的创建： &lt;/p&gt;&#xD;
&lt;p&gt;简单的自定义图标组件示例： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #000000"&gt;IconComponent&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Ext.extend(Ext.Component,&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;iconCls:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;myIcon&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;renderTpl:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;img&amp;nbsp;alt=""&amp;nbsp;src="{blank}"&amp;nbsp;class="{iconCls}"/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;onRender:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt;()&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ext.applyIf(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.renderData,&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;blank:&amp;nbsp;Ext.BLANK_IMAGE_URL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iconCls:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.iconCls&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ext.applyIf(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.renderSelectors,&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iconEl:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.iconCls&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IconComponent.superclass.onRender.call(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;changeIconCls:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt;(newIconCls)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.rendered)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.iconEl.replaceClass(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.iconCls,&amp;nbsp;newIconCls);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.iconCls&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;newIconCls;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;});&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;renderTpl定义一个XTemplate，内嵌"blank"和"iconCls"变量，这两个变量将从renderData获取。另外，在展现的时候一个iconEl引用将被应用到实例对象。一展现出来changeIconCls方法就可以使用iconEl属性了。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;评论：在一定程度上表转化了代码的组织和使用，但是还是不够优雅，比如iconEl并没有在属性上定义，下面用的时候有些"勉强"，并且不会有提示。&lt;/p&gt; &lt;img src="http://www.cnblogs.com/boolean/aggbug/1905430.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/boolean/archive/2010/12/14/1905430.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
