对百度地图API实现智能感知

丽水市汽车运输集团股份有限公司信息中心 苟安廷 

        工欲善其事必先利其器,一个称手的开发工具往往可以让我们事半功倍,就连孙悟空那么大的本事,为了找到如意金箍棒也颇费了一番周折。在天朝特有的规则面前,谷歌也日渐式微,而本土的百度地图使用越来越广,因此,对百度地图的应用开发显得越来越重要。现在开发工具的人性化程度越来越高,其中的“智能感知”功能尤为方便,在我们输入变量或者在变量后面输入小数点后,会自动提示可用的属性等,供选择使用,不仅仅大大提高了开发效率、减少了记忆,还可以避免书写错误,如下图所示的C#智能感知:

对百度地图API实现智能感知_第1张图片

      如果没有这种智能感知,全部靠记忆输入各种变量、属性、事件,在现在看来是不可思议的一件事情,虽然在DOS年代我们的确是这么干的。

      图中的参数p_TextBox是TextBox类型,所以,集成开发环境(IDE)可以推断出该参数有哪些可以自动提示的内容,实现智能感知也就不足为奇了。我们使用的较多的百度API是JavaScript接口,众所周知,JavaScript是弱类型语言,作为参数或变量时,IDE根本无法知道有哪些内容可以提示,也就只能简单提示一些通用的属性啥的,这对我们的开发极其不利,为此,我充分利用了微软Visual Studio功能,自己根据百度技术文档做了一个提示文档出来,供VS使用,其实,我们用的百度地图就是一个单纯的HTML类型文件,和用什么开发工具进行二次开发没什么关系,我选VS就是为了利用VS本身提供的强大编辑功能,我们先看看不使用提示文档直接开发时,产生的智能感知效果:

对百度地图API实现智能感知_第2张图片

      上图中的提示对于我们的开发来说,几乎没有任何意义。使用了提示文档后,产生的智能感知效果:

对百度地图API实现智能感知_第3张图片

上图中,自动提示了map的几乎全部方法、事件、属性,选择某一个提示条目后,还有具体的中文说明,是不是方便多了?如果你对此感兴趣,不妨按照下面的步骤试一下。

一、       新建一个普通的空白网站

      我们需要先建一个网站项目,把百度地图正常显示出来,然后开始使用智能感知功能编写代码,用VS新建一个网站非常简单,如果你以前用的其他IDE,按照下面的步骤一步一步做下去,很容易上手。

1.      新建空白网站

      打开VS2010,新建一个空白网站,如下图:

对百度地图API实现智能感知_第4张图片

对百度地图API实现智能感知_第5张图片

2.      创建地图载体网页

      为了加载百度地图,需要添加一个html文件,在项目上(不是解决方案上,是下图的“E:\...\WebSite1”上)按右键,从弹出菜单中选择“添加新项”来新建一个html文件:

对百度地图API实现智能感知_第6张图片

对百度地图API实现智能感知_第7张图片

      添加好html文件后,将该文件作为网站起始页面,便于调试,在新添加的html文件上按右键,从弹出菜单中选择“设为起始页”:

对百度地图API实现智能感知_第8张图片

3.      新建脚本文件

      单独新建一个脚本文件,用于编写代码,为此,参照添加html文件的方法添加一个js文件:

对百度地图API实现智能感知_第9张图片

4.      添加对该脚本文件的引用

把刚添加的js文件链接到网页里面,既可以直接在网页里写,也可以在项目里面按住js文件,然后拖到html文件的节点下面,建议使用后者,方便,链接后HTML文件相关部分内容如下: <br> <p><a href="http://img.e-com-net.com/image/info8/ccc8336f94a34f19bbe280b76cb92e8a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ccc8336f94a34f19bbe280b76cb92e8a.jpg" alt="对百度地图API实现智能感知_第10张图片" width="578" height="225" style="border:1px solid black;"></a><br></p> <p></p> <p><strong>5.      创建地图容器div</strong></p> <p>在body节点里面增加一个div,用于加载地图,id就取名为mapdiv吧:</p> <a href="http://img.e-com-net.com/image/info8/267527040eac4c95bcc503bbc7999d10.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/267527040eac4c95bcc503bbc7999d10.jpg" alt="对百度地图API实现智能感知_第11张图片" width="585" height="236" style="border:1px solid black;"></a> <br> <p><strong>6.      设置div样式</strong></p> <p>本人喜欢将css和js单独写到一个文件里面,这样条理清晰,还可以减少页面回传等数据量,这里沿用这一习惯,新建一个css文件,并链接进来:</p> <a href="http://img.e-com-net.com/image/info8/962feddac2c94d24b3ddc54f64cc3f4f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/962feddac2c94d24b3ddc54f64cc3f4f.jpg" alt="对百度地图API实现智能感知_第12张图片" width="650" height="355" style="border:1px solid black;"></a> <br> <p><a href="http://img.e-com-net.com/image/info8/2f0ad988762b4c68ab419cdece6a4f81.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/2f0ad988762b4c68ab419cdece6a4f81.jpg" alt="对百度地图API实现智能感知_第13张图片" width="627" height="232" style="border:1px solid black;"></a><br></p> <p></p> <p>链接CSS文件也建议直接拖进去,打开css文件,把样式添加进去:</p> <p> </p> <p><span style="color:#800000;">body</span>, <span style="color:#800000;"> html</span>, <span style="color:#800000;">#mapdiv</span></p> <p>{</p> <p>    <span style="color:#FF0000;">width</span>: <span style="color:#0000FF;"> 100%</span>;</p> <p>    <span style="color:#FF0000;">height</span>: <span style="color:#0000FF;"> 100%</span>;</p> <p>    <span style="color:#FF0000;">overflow</span>: <span style="color:#0000FF;"> hidden</span>;</p> <p>    <span style="color:#FF0000;">margin</span>: <span style="color:#0000FF;"> 0</span>;</p> <p>    </p> <p>}</p> <p><strong>7.      添加百度地图接口的引用</strong></p> <p>注意,请使用你自己的key代替下面的<strong><span style="color:#0000FF;">YouKey</span></strong>:</p> <p><span style="color:#0000FF;"><</span><span style="color:#800000;">script</span><span style="color:#FF0000;">src</span><span style="color:#0000FF;">="http://api.map.baidu.com/api?v=2.0&ak=<strong>YouKey</strong>"</span><span style="color:#FF0000;">type</span><span style="color:#0000FF;">="text/javascript"></</span><span style="color:#800000;">script</span><span style="color:#0000FF;">></span>,当然,你还可以使用回调函数实现异步加载,这是具体开发范畴了,在此不在赘述。</p> <p>需要强调的是:<strong>该引用必须在我们自己的js文件前面</strong>,效果如下:</p> <p><span style="color:#0000FF;"><</span><span style="color:#800000;">head</span><span style="color:#0000FF;">></span></p> <p>    <span style="color:#0000FF;"><</span><span style="color:#800000;">title</span><span style="color:#0000FF;">></span>百度地图智能感知<span style="color:#0000FF;"></</span><span style="color:#800000;">title</span><span style="color:#0000FF;">></span></p> <p>    <span style="color:#0000FF;"><</span><span style="color:#800000;">script</span><span style="color:#FF0000;">src</span><span style="color:#0000FF;">="http://api.map.baidu.com/api?v=2.0&ak=YouKey"</span><span style="color:#FF0000;">type</span><span style="color:#0000FF;">="text/javascript"></</span><span style="color:#800000;">script</span><span style="color:#0000FF;">></span></p> <p>    <span style="color:#0000FF;"><</span><span style="color:#800000;">script</span><span style="color:#FF0000;">src</span><span style="color:#0000FF;">="baiduMap.js"</span><span style="color:#FF0000;">type</span><span style="color:#0000FF;">="text/javascript"></</span><span style="color:#800000;">script</span><span style="color:#0000FF;">></span></p> <p>    <span style="color:#0000FF;"><</span><span style="color:#800000;">link</span><span style="color:#FF0000;">href</span><span style="color:#0000FF;">="StyleSheet.css"</span><span style="color:#FF0000;">rel</span><span style="color:#0000FF;">="stylesheet"</span><span style="color:#FF0000;">type</span><span style="color:#0000FF;">="text/css"</span> <span style="color:#0000FF;">/></span></p> <p><span style="color:#0000FF;"></</span><span style="color:#800000;">head</span><span style="color:#0000FF;">></span></p> <p>再次强调,上图中,对百度API的引用应该在baiduMap.js前面,顺序很重要!</p> <p><strong>8.      加载百度地图</strong></p> <p>打开baiduMap.js文件,编写js代码,加载地图:</p> <p>window.onload = <span style="color:#0000FF;">function</span> ()</p> <p>{</p> <p>    <span style="color:#0000FF;">var</span> map = <span style="color:#0000FF;"> new</span> BMap.Map(<span style="color:#800000;">"mapdiv"</span>);</p> <p>    map.centerAndZoom(<span style="color:#0000FF;">new</span>BMap.Point(119.90478515625, 28.4759344262724), 10);</p> <p>};</p> <p>至此,开发一个标准的网站项目完成,我们运行一下网站,可以看到百度地图正常加载了。</p> <br> <p><a href="http://img.e-com-net.com/image/info8/328b32d5a2884b7195c48b620410165a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/328b32d5a2884b7195c48b620410165a.jpg" alt="对百度地图API实现智能感知_第14张图片" width="502" height="392" style="border:1px solid black;"></a><br></p> <p></p> <p><strong>二、       实现智能感知</strong></p> <p>在完成了网站准备工作后,我们开始编写程序了,打开js文件,我们看看系统原有的提示效果如下:</p> <p><a href="http://img.e-com-net.com/image/info8/6aa074d43e7f4425bda906e95d749735.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/6aa074d43e7f4425bda906e95d749735.jpg" alt="对百度地图API实现智能感知_第15张图片" width="385" height="257" style="border:1px solid black;"></a><br></p> <p></p> <p></p> <p>虽然我们知道变量map有大量的方法/事件/属性,但VS却不知道这些,当然,也就无法智能感知了,只能提示几个几乎没有意义的选项,如果这样开发,后续工作量相当大,接下来,开始进入正题,实现智能感知。</p> <p><strong>1.     添加智能感知所需文档</strong></p> <p>下载智能感知文档(下载提示文档),解压缩后,我们真正需要的是两个文件:mapAttach.js和mapPromptDoc.js,把这两个文件都添加到项目里面去:</p> <a href="http://img.e-com-net.com/image/info8/3d8e89df6cd745a588e97962e8c88b84.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/3d8e89df6cd745a588e97962e8c88b84.jpg" alt="对百度地图API实现智能感知_第16张图片" width="508" height="224" style="border:1px solid black;"></a> <br> <p></p> <p><strong>2.     添加mapAttach.js引用</strong></p> <p>把mapAttach.js链接到html文件里面,注意,<strong>该文件必须在百度链接引用的前面</strong>:</p> <p><span style="color:#0000FF;"><</span><span style="color:#800000;">head</span><span style="color:#0000FF;">></span></p> <p><span style="color:#0000FF;"><</span><span style="color:#800000;">title</span><span style="color:#0000FF;">></span>百度地图智能感知<span style="color:#0000FF;"></</span><span style="color:#800000;">title</span><span style="color:#0000FF;">></span></p> <p><strong><span><!--</span><span>注意</span><span>:mapAttach.js</span><span>必须在百度地图接口前面</span><span>,</span><span>前后顺序非常重要</span><span> --></span></strong></p> <p>    <span style="color:#0000FF;"><</span><span style="color:#800000;">script</span><span style="color:#FF0000;">src</span><span style="color:#0000FF;">="mapAttach.js"</span><span style="color:#FF0000;">type</span><span style="color:#0000FF;">="text/javascript"></</span><span style="color:#800000;">script</span><span style="color:#0000FF;">></span></p> <p>    <span style="color:#0000FF;"><</span><span style="color:#800000;">script</span><span style="color:#FF0000;">src</span><span style="color:#0000FF;">="http://api.map.baidu.com/api?v=2.0&ak=YouKey"</span><span style="color:#FF0000;">type</span><span style="color:#0000FF;">="text/javascript"></</span><span style="color:#800000;">script</span><span style="color:#0000FF;">></span></p> <p>    <span style="color:#0000FF;"><</span><span style="color:#800000;">script</span><span style="color:#FF0000;">src</span><span style="color:#0000FF;">="baiduMap.js"</span><span style="color:#FF0000;">type</span><span style="color:#0000FF;">="text/javascript"></</span><span style="color:#800000;">script</span><span style="color:#0000FF;">></span></p> <p>    <span style="color:#0000FF;"><</span><span style="color:#800000;">link</span><span style="color:#FF0000;">href</span><span style="color:#0000FF;">="StyleSheet.css"</span><span style="color:#FF0000;">rel</span><span style="color:#0000FF;">="stylesheet"</span><span style="color:#FF0000;">type</span><span style="color:#0000FF;">="text/css"</span> <span style="color:#0000FF;">/></span></p> <p><span style="color:#0000FF;"></</span><span style="color:#800000;">head</span><span style="color:#0000FF;">></span></p> <p> </p> <p><strong>3.     添加对提示文档的引用</strong></p> <p>打开baiduMap.js,添加对提示文档的引用,用鼠标按住mapPromptDoc.js文件,拖到baiduMap.js上面,会自动创建引用,注意,该提示文档仅仅是给VS看的,千万不能添加到html里面去:</p> <p> </p> <p><span>///<reference path="mapPromptDoc.js" /></span></p> <p>window.onload = <span style="color:#0000FF;">function</span> ()</p> <p>{</p> <p>    <span style="color:#0000FF;">var</span> map = <span style="color:#0000FF;"> new</span> BMap.Map(<span style="color:#800000;">"mapdiv"</span>);</p> <p>    map.centerAndZoom(<span style="color:#0000FF;">new</span>BMap.Point(119.90478515625, 28.4759344262724), 10);   </p> <p>};</p> <p> </p> <p>从上面的代码可以看出,对该文件的引用语句本质上是被注释掉了,也就是不会真正运行,只是告诉VS2010,从这里提取提示信息。</p> <p><strong>4.     更新提示信息</strong></p> <p>确保当前编辑窗口是baiduMap.js,打开菜单编辑→IntelliSence→更新JScript Intellisence,或者直接按快捷键Ctrl+Shift+J:</p> <p><a href="http://img.e-com-net.com/image/info8/96610e36ae7e4d99b354df0f5850d0ab.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/96610e36ae7e4d99b354df0f5850d0ab.jpg" alt="对百度地图API实现智能感知_第17张图片" width="650" height="435" style="border:1px solid black;"></a><br></p> <p></p> <p>现在,我们再次测试一下,输入map和小数点后,提示情况变成了:</p> <a href="http://img.e-com-net.com/image/info8/0edbcec62f5f486abaee38a522ccc322.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/0edbcec62f5f486abaee38a522ccc322.jpg" alt="对百度地图API实现智能感知_第18张图片" width="626" height="308" style="border:1px solid black;"></a> <br> <p></p> <p>从上图可以看出,在我们输入变量名称和小数点后,自动提示了百度地图控件的各种方法、属性,选择某个方法后,还有中文的解释,是不是方便多了?</p> <p><strong>三、      其他一些技巧</strong></p> <p><strong>1.      全局变量</strong></p> <p>为了使用方便,我们往往需要设置一些全局变量,而VS的智能感知是根据赋值时判断类型的,因此,全局变量必须在定义时就赋值,而此时,百度地图还没有加载呢,赋值必然报错,为解决这个问题,我做了一个附加的js文件,就是前面的的mapAttach.js,里面定义了百度地图常用的函数,待百度地图接口加载后,会自动覆盖,这也是为什么我强调mapAttach.js必须在百度接口前面引用的原因,通过这样处理,我们就可以给全局变量赋值了,既达到了智能感知的目的,又不会报错:</p> <p><span>///<reference path="mapPromptDoc.js" /></span></p> <p><span style="color:#0000FF;">var</span> map = <span style="color:#0000FF;"> new</span>BMap.Map();<span>//</span><span>模拟赋值</span></p> <p>window.onload = <span style="color:#0000FF;">function</span> ()</p> <p>{</p> <p>    map = <span style="color:#0000FF;">new</span>BMap.Map();<span>//</span><span>真正赋值</span></p> <p>    map.centerAndZoom(<span style="color:#0000FF;">new</span>BMap.Point(119.90478515625, 28.4759344262724), 10);</p> <p>};</p> <p> </p> <p>在使用该变量前,必须真正赋值。</p> <p><strong>2.      添加事件</strong></p> <p>百度地图有很多事件,标准写法是:</p> <p> </p> <p>    map.addEventListener(<span style="color:#800000;">"click"</span>,<span style="color:#0000FF;">function</span>(type)</p> <p>    {</p> <p>    });</p> <p>以上方法给百度地图增加了单击事件,但事件名称<span style="color:#800000;">"click"</span>是字符串,要靠死记硬背,为解决这一个问题,我在mapAttach.js里面把事件名称都罗列出来了,可以直接使用,如:</p> <p>map.addEventListener(BMapEventName.click,<span style="color:#0000FF;">function</span> (type)</p> <p>    {</p> <p>    });</p> <p>当然,罗列的事件名称也支持智能感知:</p> <p><a href="http://img.e-com-net.com/image/info8/e4dba9579d904c8dae3393aa74589128.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e4dba9579d904c8dae3393aa74589128.jpg" alt="对百度地图API实现智能感知_第19张图片" width="645" height="333" style="border:1px solid black;"></a><br> 其他各种控件用到的事件名称也都有了,有兴趣的话你可以看看mapAttach.js源文件。<br></p> <p><strong>四、 结束语</strong></p> <p>在html文件里面引用顺序不能错,依次是mapAttach.js、百度接口、自己的js文件,mapPromptDoc.js是给IDE看的,千万不能引用到页面里去。</p> <p>以上是本人自己为了开发方便偷懒做的东西,由于技术水平有限,时间紧,必然有大量不完善甚至错误的地方,望谅,你也可以打两个js文件自行完善,当然,如果百度官方能出一个提示文档,那就太好了:权威、全面,让我们一起期待!!!</p> <br> <br> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1304817991464030208"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(JavaScript,jQuery)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1895170064504647680.htm" title="JavaScript系列(89)--前端模块化工程详解" target="_blank">JavaScript系列(89)--前端模块化工程详解</a> <span class="text-muted">一进制ᅟᅠ        ‌‍‎‏ </span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E7%8A%B6%E6%80%81%E6%A8%A1%E5%BC%8F/1.htm">状态模式</a> <div>前端模块化工程详解前端模块化是现代Web开发的核心理念之一,它帮助我们组织和管理日益复杂的前端代码。本文将详细探讨前端模块化工程的各个方面,从基础概念到实际应用。模块化概述小知识:模块化是指将一个复杂的系统分解为独立的、可复用的模块。在前端开发中,模块化有助于提高代码的可维护性、可测试性和可重用性,同时促进团队协作和大型应用的开发。模块化标准与演进//1.CommonJS规范classCommon</div> </li> <li><a href="/article/1895164392857726976.htm" title="js的some函数" target="_blank">js的some函数</a> <span class="text-muted">小华0000</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>在JavaScript中,some()是一个数组的方法,用于测试数组中是否至少有一个元素满足提供的函数。如果数组中有至少一个元素通过由提供的函数实现的测试,则它返回true;否则返回false。以下是some()函数的基本语法:javascript复制代码arr.some(function(currentValue,index,arr),thisArg);currentValue:必需。当前元素的</div> </li> <li><a href="/article/1895164393289740288.htm" title="js的includes函数" target="_blank">js的includes函数</a> <span class="text-muted">小华0000</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在JavaScript中,includes()是一个数组(Array)和字符串(String)对象的方法,用于确定一个数组是否包含一个特定的值,或者一个字符串是否包含一个特定的子串。如果找到该值或子串,则返回true;否则返回false。数组中的includes()对于数组,includes()方法用于判断一个数组是否包含一个指定的值,根据情况,如果需要,可以指定开始搜索的位置。语法:arr.in</div> </li> <li><a href="/article/1895159594808832000.htm" title="JS:IntersectionObserver(监听目标元素是否出现在窗口中)" target="_blank">JS:IntersectionObserver(监听目标元素是否出现在窗口中)</a> <span class="text-muted">一天只码五十行</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>一、简介IntersectionObserver是JavaScript中的一个API,用于异步观察目标元素与其祖先元素或顶级文档视口的交叉状态。当目标元素的可见性发生变化时,你可以使用IntersectionObserver来执行某些操作,比如懒加载图片、无限滚动等。newIntersectionObserver()是用于创建一个新的IntersectionObserver实例的构造函数。当你调用</div> </li> <li><a href="/article/1895158835904049152.htm" title="Intersection Observer API 详解" target="_blank">Intersection Observer API 详解</a> <span class="text-muted">Rkcy</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>当我们滚动网页时,可能会遇到需要实现一些动态效果或监测元素的可见性等业务需求。以前,我们通常需要基于JavaScript来编写自己的监测逻辑,这样会对浏览器的性能产生一定的影响。现在,有一种新的浏览器API——IntersectionObserverAPI,它可以帮助我们精确地监测指定元素是否出现在浏览器的视口中,而且不会对性能产生明显影响。IntersectionObserverAPI核心原理I</div> </li> <li><a href="/article/1895154791793881088.htm" title="JavaScript中的IntersectionObserver使用" target="_blank">JavaScript中的IntersectionObserver使用</a> <span class="text-muted">碧海蓝天·</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>IntersectionObserver是一个JavaScriptAPI,用于异步观察目标元素与其祖先元素或视口的交叉状态。它可以帮助我们判断一个元素是否进入或离开视口,以及元素与其他元素的交叉情况。在本文中,我将向您详细介绍如何使用IntersectionObserver,并提供相应的源代码示例。创建IntersectionObserver对象要使用IntersectionObserver,首先</div> </li> <li><a href="/article/1895149491246395392.htm" title="深入理解 JavaScript 的 IntersectionObserver API" target="_blank">深入理解 JavaScript 的 IntersectionObserver API</a> <span class="text-muted">小华0000</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>现代Web开发中,性能和用户体验是不可忽视的两个核心。为了实现页面的高效滚动加载、懒加载图片、观察元素是否进入视口等功能,JavaScript提供了一个强大的工具——IntersectionObserverAPI。在这篇博客中,我们将深入解析IntersectionObserver的核心功能、使用方法,以及最佳实践。一、什么是IntersectionObserver?IntersectionObs</div> </li> <li><a href="/article/1895130955891404800.htm" title="JavaScript和HTML5游戏:从愤怒的小鸟到ZX Spectrum" target="_blank">JavaScript和HTML5游戏:从愤怒的小鸟到ZX Spectrum</a> <span class="text-muted">dingshi7798</span> <a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a> <div>最近,HTML5/JavaScript游戏领域发生了一些爆炸。浏览器游戏的受欢迎程度迅速增加,开发人员开始寻找一套方便使用的API和其他工具。罗伯·霍克斯(RobHawkes)热衷于赞扬HTML5和JavaScript及其在浏览器游戏中的应用。Rob是Mozilla的视觉程序员,作家和技术布道者,在开发人员社区中领导Mozilla工作的游戏方面。他在5月份在墨尔本举行的WebDirectionsC</div> </li> <li><a href="/article/1895130199394152448.htm" title="一周学会Flask3 Python Web开发-Jinja2模版中加载静态文件" target="_blank">一周学会Flask3 Python Web开发-Jinja2模版中加载静态文件</a> <span class="text-muted">java1234_小锋</span> <a class="tag" taget="_blank" href="/search/Flask3%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B/1.htm">Flask3视频教程</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a><a class="tag" taget="_blank" href="/search/flask3/1.htm">flask3</a> <div>锋哥原创的Flask3PythonWeb开发Flask3视频教程:2025版Flask3Pythonweb开发视频教程(无废话版)玩命更新中~_哔哩哔哩_bilibili一个Web项目不仅需要HTML模板,还需要许多静态文件,比如CSS、JavaScript文件、图片以及音频等。在Flask程序中,默认我们需要将静态文件存储在与主脚本(包含程序实例的脚本)同级目录的static文件夹中。在Jinj</div> </li> <li><a href="/article/1895128301169602560.htm" title="【地图视界-Leaflet1】快速搭建你的第一个地图" target="_blank">【地图视界-Leaflet1】快速搭建你的第一个地图</a> <span class="text-muted">Anchenry</span> <a class="tag" taget="_blank" href="/search/GIS%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">GIS可视化</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E5%9C%B0%E5%9B%BE%E8%A7%86%E7%95%8C/1.htm">地图视界</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">信息可视化</a> <div>引言随着Web技术的飞速发展,交互式地图已经成为网站不可或缺的一部分。无论是位置定位、数据可视化,还是复杂的空间分析,地图应用都在现代互联网应用中占据着重要地位。而Leaflet作为一款轻量级、开源的JavaScript库,凭借其极简的设计、高效的性能和易于上手的特性,成为了开发交互式地图应用的首选工具之一。本文将通过详细介绍Leaflet的使用,帮助你从零基础开始,逐步构建出自己的地图应用。什么</div> </li> <li><a href="/article/1895107094953127936.htm" title="浅谈HTML5" target="_blank">浅谈HTML5</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>HTML5的时代已经到来,它对所有做前端搭建制作设计开发人员来说是一种福音。HTML5致力于解决跨浏览器问题,可以部分取代JavaScript,HTML5致力于把浏览器变成一个前端执行菠菜程序环境,而不是简单地视图工具。第一部分,了解HTML和XHTMLHTML——HyperTextMarkupLanguage(超文本标记语言),它的发展史比较复杂,从1991年年底推出HTML,当时HTML并没有</div> </li> <li><a href="/article/1895094626910531584.htm" title="html标签及属性 详解,常用的HTML标签详解与总结" target="_blank">html标签及属性 详解,常用的HTML标签详解与总结</a> <span class="text-muted">释宣导</span> <a class="tag" taget="_blank" href="/search/html%E6%A0%87%E7%AD%BE%E5%8F%8A%E5%B1%9E%E6%80%A7/1.htm">html标签及属性</a><a class="tag" taget="_blank" href="/search/%E8%AF%A6%E8%A7%A3/1.htm">详解</a> <div>对于很多HTML初学者来说,记忆和掌握标签是一门很难搞的功课。今天,我们就来详细介绍常用的HTML标签。对于标签的掌握,更多的是要通过练习,熟能生巧。stlye标签用于定义元素的CSS样式/*这里写css样式*/script标签用于定义页面的JavaScript代码,也可以引入外部的JavaScript文件。/*这里写JavaScript代码*/link标签引入外部样式css文件。HTML注释又叫</div> </li> <li><a href="/article/1895083396053397504.htm" title="LangChain入门:使用Python和通义千问打造免费的Qwen大模型聊天机器人" target="_blank">LangChain入门:使用Python和通义千问打造免费的Qwen大模型聊天机器人</a> <span class="text-muted">闯江湖50年</span> <a class="tag" taget="_blank" href="/search/langchain/1.htm">langchain</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA/1.htm">机器人</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>前言LangChain是一个用于开发由大型语言模型(LargeLanguageModels,简称LLMs)驱动的应用程序的框架。它提供了一个灵活的框架,使得开发者可以构建具有上下文感知能力和推理能力的应用程序,这些应用程序可以利用公司的数据和APIs。这个框架由几个部分组成。LangChain库:Python和JavaScript库。包含了各种组件的接口和集成,一个基本的运行时,用于将这些组件组合</div> </li> <li><a href="/article/1895077975678840832.htm" title="从ECMAScript到JavaScript:前端编程的基石" target="_blank">从ECMAScript到JavaScript:前端编程的基石</a> <span class="text-muted">大雨淅淅</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/1.htm">前端开发</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>目录一、什么是ECMAScript二、发展历程回顾三、核心特性解析3.1基础类型与数据结构3.2函数的进阶用法3.3对象的操作与扩展3.4类与面向对象编程3.5异步编程四、实际应用场景4.1Web前端开发4.2Node.js后端开发4.3移动应用开发五、未来展望一、什么是ECMAScriptECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会)通过ECMA-262标准化的脚本程序设</div> </li> <li><a href="/article/1895068896512241664.htm" title="react-native入门之核心组件与原生组件" target="_blank">react-native入门之核心组件与原生组件</a> <span class="text-muted">crayon-shin-chan</span> <a class="tag" taget="_blank" href="/search/surprise/1.htm">surprise</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/react-native/1.htm">react-native</a><a class="tag" taget="_blank" href="/search/react/1.htm">react</a><a class="tag" taget="_blank" href="/search/native/1.htm">native</a><a class="tag" taget="_blank" href="/search/react/1.htm">react</a> <div>文档:核心组件与原生组件·ReactNative中文网1.简介ReactNative是一个使用React和应用平台的原生功能来构建Android和iOS应用的开源框架。可以使用JavaScript来访问移动平台的API,使用React组件来描述UI的外观和行为2.视图在Android和iOS开发中,一个视图是UI的基本组成部分屏幕上的一个小矩形元素、可用于显示文本、图像或响应用户输入。甚至应用程序</div> </li> <li><a href="/article/1895061465270906880.htm" title="使用NestJS的控制器与业务逻辑结合的入门教程" target="_blank">使用NestJS的控制器与业务逻辑结合的入门教程</a> <span class="text-muted">XymkMl</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>NestJS是一个用于构建高效、可扩展的Node.js应用程序的框架。它采用了现代化的JavaScript或TypeScript语言,并提供了强大的依赖注入、模块化和面向切面编程等功能。本教程将介绍如何在NestJS应用程序中结合控制器和业务逻辑,以实现灵活且可维护的代码结构。步骤1:创建NestJS应用程序首先,我们需要安装NestJSCLI工具,用于创建和管理NestJS应用程序。打开终端并执</div> </li> <li><a href="/article/1895060331219185664.htm" title="Vue.js 详细介绍" target="_blank">Vue.js 详细介绍</a> <span class="text-muted">DOMINICHZL</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a> <div>1.引言在前端开发领域,Vue.js无疑是一个备受瞩目的框架。它以其轻量、易用和高效的特点,迅速成为开发者们的首选。无论你是前端新手,还是有一定经验的开发者,Vue.js都能为你提供强大的支持。本文将带你从零开始,深入了解Vue.js的核心概念、使用方法以及最佳实践。2.Vue.js简介2.1什么是Vue.js?Vue.js是一套用于构建用户界面的渐进式JavaScript框架。与其他大型框架不同</div> </li> <li><a href="/article/1895047204045910016.htm" title="Vue学习教程-16html标签元素绑定事件" target="_blank">Vue学习教程-16html标签元素绑定事件</a> <span class="text-muted">番茄番茄君</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>文章目录前言一、表单数据绑定事件二、多媒体元素绑定1.图片img和视频元素video三、容器元素绑定事件前言在Vue中,你可以通过v-on指令(或在Vue2.x中简写为@)来绑定事件。这种方式允许你监听DOM事件,并在触发时执行一些JavaScript代码。常见的元素主要是表单数据元素、多媒体元素和容器元素。一、表单数据绑定事件常见的表单数据元素1.文本输入框元素3.多选框元素4.下拉框元素5.按</div> </li> <li><a href="/article/1895045940692185088.htm" title="Node.js使用教程" target="_blank">Node.js使用教程</a> <span class="text-muted">m0_74823408</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/1.htm">学习路线</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4/1.htm">阿里巴巴</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">编辑器</a> <div>Node.js使用教程Node.js是一个基于ChromeV8引擎的JavaScript运行环境,它让JavaScript运行在服务器端。以下是一个简单的Node.js使用教程:一、Node.js开发环境和编译1.1安装Node.js访问Node.js官网下载并安装适合您操作系统的Node.js版本。1.2创建一个Node.js项目在您的工作目录中,创建一个新的文件夹作为项目目录,例如命名为my_</div> </li> <li><a href="/article/1895037368008765440.htm" title="2025年前端开发者必学的技术" target="_blank">2025年前端开发者必学的技术</a> <span class="text-muted">倔强青铜3</span> <a class="tag" taget="_blank" href="/search/JavaScript%E6%88%90%E7%A5%9E%E4%B9%8B%E8%B7%AF/1.htm">JavaScript成神之路</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/react/1.htm">react</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>2025年前端开发者必学的技术原文链接:ImportantTopicsforFrontendDeveloperstoMasterin2025作者:moibra译者:倔强青铜三前言大家好,我是倔强青铜三。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!1.现代JavaScript(</div> </li> <li><a href="/article/1895003311485022208.htm" title="深入解析 Vue 3 编译宏:揭开 `<script setup>` 的魔法面纱" target="_blank">深入解析 Vue 3 编译宏:揭开 `<script setup>` 的魔法面纱</a> <span class="text-muted">斯~内克</span> <a class="tag" taget="_blank" href="/search/vue%E7%9F%A5%E8%AF%86%E7%82%B9/1.htm">vue知识点</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>一、编译宏的本质与设计哲学1.1什么是编译宏在Vue3的CompositionAPI生态中,编译宏(CompilerMacros)是一组特殊的语法结构,它们在代码编译阶段被Vue编译器处理,最终转换为标准的JavaScript代码。这些宏函数是Vue3语法糖的核心组成部分,主要包含:defineProps:声明组件propsdefineEmits:定义自定义事件defineExpose:暴露组件公</div> </li> <li><a href="/article/1895003310700687360.htm" title="深入探讨 Vue 3 响应式 API:为什么 ref/reactive 需要类型匹配?" target="_blank">深入探讨 Vue 3 响应式 API:为什么 ref/reactive 需要类型匹配?</a> <span class="text-muted">斯~内克</span> <a class="tag" taget="_blank" href="/search/vue%E7%9F%A5%E8%AF%86%E7%82%B9/1.htm">vue知识点</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>一、Vue3响应式系统基础在Vue3的CompositionAPI中,ref和reactive是构建响应式数据的核心工具。它们的定位差异源于JavaScript语言特性:ref设计初衷:处理基础类型(primitivetypes)的响应式包装reactive设计初衷:处理引用类型(referencetypes)的深度响应代理技术实现差异:ref通过对象包装({value:...})+reactiv</div> </li> <li><a href="/article/1894955162271805440.htm" title="京东商品详情API性能优化:缓存分层与热点数据预加载策略" target="_blank">京东商品详情API性能优化:缓存分层与热点数据预加载策略</a> <span class="text-muted">专注API从业者</span> <a class="tag" taget="_blank" href="/search/%E7%94%B5%E5%95%86%E5%B9%B3%E5%8F%B0/1.htm">电商平台</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a><a class="tag" taget="_blank" href="/search/API%E6%8E%A5%E5%8F%A3/1.htm">API接口</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>在京东商品详情API的使用过程中,性能优化至关重要。缓存分层与热点数据预加载策略是两种有效的优化手段,下面详细介绍:缓存分层策略1.分层结构设计浏览器缓存原理:这是最接近用户的一层缓存。当用户首次访问商品详情页时,浏览器会将页面的静态资源(如CSS、JavaScript文件、图片等)以及部分不经常变化的数据(如商品的基本描述等)进行缓存。下次用户再次访问相同页面时,浏览器会首先检查本地缓存,如果缓</div> </li> <li><a href="/article/1894948105346936832.htm" title="《从零到全栈:JavaScript新增的ES6语法》" target="_blank">《从零到全栈:JavaScript新增的ES6语法》</a> <span class="text-muted">CodeComposer</span> <a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>JavaScript是一门弱类型的脚本语言,广泛应用于网页开发中。ES6(ECMAScript2015)是JavaScript的第六个版本,引入了许多新特性,使得JavaScript更加现代化和强大。本文将详细介绍JavaScript的基础概念、ES6的新特性及其应用场景。一、JavaScript核心概念1.JavaScript的本质弱类型语言:变量声明无需指定类型,可动态存储任意数据。vara=</div> </li> <li><a href="/article/1894947977282252800.htm" title="《从零到全栈:JavaScript入门指南(二)》" target="_blank">《从零到全栈:JavaScript入门指南(二)》</a> <span class="text-muted">CodeComposer</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>DOM操作1、DOM基础概念定义:文档对象模型(DocumentObjectModel),将HTML/XML文档解析为树形结构,提供操作页面元素的接口。核心作用:通过JavaScript动态操作网页内容(增删改查元素、样式、属性、事件等)。节点类型:元素节点(如)文本节点(如标签内的文字)属性节点(如class="box")2、document对象入口对象:代表整个文档,提供访问和操作页面的属性和</div> </li> <li><a href="/article/1894947977886232576.htm" title="《从零到全栈:Bootstrap 响应式布局指南》" target="_blank">《从零到全栈:Bootstrap 响应式布局指南》</a> <span class="text-muted">CodeComposer</span> <a class="tag" taget="_blank" href="/search/bootstrap/1.htm">bootstrap</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>一、概念1.Bootstrap是什么?Bootstrap是一个基于HTML、CSS和JavaScript的开源前端框架,主要用于快速构建响应式网页。它是UI库(CSS库),提供了丰富的预定义样式和组件,帮助开发者快速实现美观且功能强大的界面。文档地址:Bootstrap中文文档2.响应式布局响应式布局是一种网页设计方法,使页面能够根据设备屏幕尺寸自动调整布局和样式。核心原理:通过媒体查询(@med</div> </li> <li><a href="/article/1894947978301468672.htm" title="《从零到全栈:AJAX基础概念》" target="_blank">《从零到全栈:AJAX基础概念》</a> <span class="text-muted">CodeComposer</span> <a class="tag" taget="_blank" href="/search/ajax/1.htm">ajax</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>一、AJAX基础概念AJAX,全称为AsynchronousJavaScriptandXML,它是一项极具创新性的技术,能借助异步JavaScript达成数据在前后端之间的交互,彻底革新了网页的交互模式。其核心特性意义重大:异步请求,局部刷新页面:传统网页交互往往是整页刷新,这不仅耗时,还会打断用户操作流程。而AJAX实现异步请求后,仅更新页面中需要变动的部分,大大提升了交互的流畅性与效率,用户无</div> </li> <li><a href="/article/1894937010360086528.htm" title="PubSubJS的基本使用" target="_blank">PubSubJS的基本使用</a> <span class="text-muted">SarinaDu</span> <a class="tag" taget="_blank" href="/search/react/1.htm">react</a><a class="tag" taget="_blank" href="/search/react/1.htm">react</a><a class="tag" taget="_blank" href="/search/pubsub/1.htm">pubsub</a> <div>前言日常积累,欢迎指正参考PubSubJS-GitHubPubSubJS-npm使用说明首先说明我当前使用的pubsub版本为1.6.0什么是pubsub?PubSubJSisatopic-basedpublish/subscribelibrarywritteninJavaScript.即一个利用JavaScript进行发布/订阅的库使用React+TypeScript发布importPubsub</div> </li> <li><a href="/article/1894919234262200320.htm" title="通义灵码 - 你的 AI 智能编码小助手" target="_blank">通义灵码 - 你的 AI 智能编码小助手</a> <span class="text-muted">甘蓝聊Java</span> <a class="tag" taget="_blank" href="/search/%E3%80%90%E6%9B%B4%E6%96%B0%E4%B8%AD...%E3%80%91%E9%A1%B9%E7%9B%AE%E4%B8%AD%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B/1.htm">【更新中...】项目中的那些事</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E9%80%9A%E4%B9%89%E7%81%B5%E7%A0%81/1.htm">通义灵码</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A0%81%E5%8A%A9%E6%89%8B/1.htm">编码助手</a> <div>文章目录核心功能快速安装版本选择安装插件登录通义灵码相关配置体验功能基础功能研发智能问答AI程序员体验有感参考官网:https://lingma.aliyun.com/⭐版本:2.0.3【截至2025/02/05】❓简介:通义灵码,一款基于通义大模型的智能编码辅助工具。支持多种编程语言,比如Java、Go、Python、JavaScript、TypeScript等支持多种IDE,比如IDEA、VS</div> </li> <li><a href="/article/1894915327695843328.htm" title="「Selenium+Python自动化从0到1①|2025最新环境搭建+浏览器驱动避坑指南(附验证代码)」" target="_blank">「Selenium+Python自动化从0到1①|2025最新环境搭建+浏览器驱动避坑指南(附验证代码)」</a> <span class="text-muted">俗人咖</span> <a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a> <div>Selenium+Python自动化1-环境搭建一、Selenium简介Selenium是一个广泛使用的自动化测试工具,主要用于Web应用程序的自动化测试。它支持多种编程语言(如Java、Python、C#、Ruby、JavaScript等),并允许用户控制浏览器执行自动化任务,例如点击按钮、填写表单、验证页面内容等。Selenium可以在多种浏览器(如Chrome、Firefox、Edge、Sa</div> </li> <li><a href="/article/8.htm" title="LeetCode[Math] - #66 Plus One" target="_blank">LeetCode[Math] - #66 Plus One</a> <span class="text-muted">Cwind</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a><a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a> <div>原题链接:#66 Plus One   要求: 给定一个用数字数组表示的非负整数,如num1 = {1, 2, 3, 9}, num2 = {9, 9}等,给这个数加上1。 注意: 1. 数字的较高位存在数组的头上,即num1表示数字1239 2. 每一位(数组中的每个元素)的取值范围为0~9   难度:简单   分析: 题目比较简单,只须从数组</div> </li> <li><a href="/article/135.htm" title="JQuery中$.ajax()方法参数详解" target="_blank">JQuery中$.ajax()方法参数详解</a> <span class="text-muted">AILIKES</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a> <div>url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。 type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和    delete也可以使用,但仅部分浏览器支持。 timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局</div> </li> <li><a href="/article/262.htm" title="JConsole & JVisualVM远程监视Webphere服务器JVM" target="_blank">JConsole & JVisualVM远程监视Webphere服务器JVM</a> <span class="text-muted">Kai_Ge</span> <a class="tag" taget="_blank" href="/search/JVisualVM/1.htm">JVisualVM</a><a class="tag" taget="_blank" href="/search/JConsole/1.htm">JConsole</a><a class="tag" taget="_blank" href="/search/Webphere/1.htm">Webphere</a> <div>    JConsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。我们可以根据这些信息判断程序是否有内存泄漏问题。   使用JConsole工具来分析WAS的JVM问题,需要进行相关的配置。   首先我们看WAS服务器端的配置.   1、登录was控制台https://10.4.119.18</div> </li> <li><a href="/article/389.htm" title="自定义annotation" target="_blank">自定义annotation</a> <span class="text-muted">120153216</span> <a class="tag" taget="_blank" href="/search/annotation/1.htm">annotation</a> <div>Java annotation 自定义注释@interface的用法 一、什么是注释      说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源</div> </li> <li><a href="/article/516.htm" title="CentOS 5/6.X 使用 EPEL YUM源" target="_blank">CentOS 5/6.X 使用 EPEL YUM源</a> <span class="text-muted">2002wmj</span> <a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a> <div>CentOS 6.X 安装使用EPEL YUM源1. 查看操作系统版本[root@node1 ~]# uname -a Linux node1.test.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@node1 ~]#</div> </li> <li><a href="/article/643.htm" title="在SQLSERVER中查找缺失和无用的索引SQL" target="_blank">在SQLSERVER中查找缺失和无用的索引SQL</a> <span class="text-muted">357029540</span> <a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a> <div>--缺失的索引 SELECT  avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement ,          last_user_seek ,    </div> </li> <li><a href="/article/770.htm" title="Spring3 MVC 笔记(二) —json+rest优化" target="_blank">Spring3 MVC 笔记(二) —json+rest优化</a> <span class="text-muted">7454103</span> <a class="tag" taget="_blank" href="/search/Spring3+MVC/1.htm">Spring3 MVC</a> <div>接上次的 spring mvc 注解的一些详细信息!                          其实也是一些个人的学习笔记  呵呵! </div> </li> <li><a href="/article/897.htm" title="替换“\”的时候报错Unexpected internal error near index 1 \ ^" target="_blank">替换“\”的时候报错Unexpected internal error near index 1 \ ^</a> <span class="text-muted">adminjun</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E2%80%9C%5C%E6%9B%BF%E6%8D%A2%E2%80%9D/1.htm">“\替换”</a> <div>发现还是有些东西没有刻子脑子里,,过段时间就没什么概念了,所以贴出来...以免再忘...   在拆分字符串时遇到通过 \ 来拆分,可是用所以想通过转义 \\ 来拆分的时候会报异常   public class Main {          /*</div> </li> <li><a href="/article/1024.htm" title="POJ 1035 Spell checker(哈希表)" target="_blank">POJ 1035 Spell checker(哈希表)</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/%E6%9A%B4%E5%8A%9B%E6%B1%82%E8%A7%A3--%E5%93%88%E5%B8%8C%E8%A1%A8/1.htm">暴力求解--哈希表</a> <div>/* 题意:输入字典,然后输入单词,判断字典中是否出现过该单词,或者是否进行删除、添加、替换操作,如果是,则输出对应的字典中的单词 要求按照输入时候的排名输出 题解:建立两个哈希表。一个存储字典和输入字典中单词的排名,一个进行最后输出的判重 */ #include <iostream> //#define using namespace std; const int HASH =</div> </li> <li><a href="/article/1151.htm" title="通过原型实现javascript Array的去重、最大值和最小值" target="_blank">通过原型实现javascript Array的去重、最大值和最小值</a> <span class="text-muted">ayaoxinchao</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/array/1.htm">array</a><a class="tag" taget="_blank" href="/search/prototype/1.htm">prototype</a> <div>用原型函数(prototype)可以定义一些很方便的自定义函数,实现各种自定义功能。本次主要是实现了Array的去重、获取最大值和最小值。 实现代码如下:   <script type="text/javascript"> Array.prototype.unique = function() { var a = {}; var le</div> </li> <li><a href="/article/1278.htm" title="UIWebView实现https双向认证请求" target="_blank">UIWebView实现https双向认证请求</a> <span class="text-muted">bewithme</span> <a class="tag" taget="_blank" href="/search/UIWebView/1.htm">UIWebView</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a><a class="tag" taget="_blank" href="/search/Objective-C/1.htm">Objective-C</a> <div>          什么是HTTPS双向认证我已在先前的博文 ASIHTTPRequest实现https双向认证请求 中有讲述,不理解的读者可以先复习一下。本文是用UIWebView来实现对需要客户端证书验证的服务请求,网上有些文章中有涉及到此内容,但都只言片语,没有讲完全,更没有完整的代码,让人困扰不已。但是此知</div> </li> <li><a href="/article/1405.htm" title="NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)" target="_blank">NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/NoSQL/1.htm">NoSQL</a> <div>3.事务处理         Redis对事务的支持目前不比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中</div> </li> <li><a href="/article/1532.htm" title="各数据库分页sql备忘" target="_blank">各数据库分页sql备忘</a> <span class="text-muted">bingyingao</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5/1.htm">分页</a> <div>ORACLE 下面这个效率很低 SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_FS_RETURN order by id desc) A ) WHERE RN <20; 下面这个效率很高 SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_</div> </li> <li><a href="/article/1659.htm" title="【Scala七】Scala核心一:函数" target="_blank">【Scala七】Scala核心一:函数</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a> <div>1. 如果函数体只有一行代码,则可以不用写{},比如 def print(x: Int) = println(x) 一行上的多条语句用分号隔开,则只有第一句属于方法体,例如   def printWithValue(x: Int) : String= println(x); "ABC"   上面的代码报错,因为,printWithValue的方法</div> </li> <li><a href="/article/1786.htm" title="了解GHC的factorial编译过程" target="_blank">了解GHC的factorial编译过程</a> <span class="text-muted">bookjovi</span> <a class="tag" taget="_blank" href="/search/haskell/1.htm">haskell</a> <div>GHC相对其他主流语言的编译器或解释器还是比较复杂的,一部分原因是haskell本身的设计就不易于实现compiler,如lazy特性,static typed,类型推导等。 关于GHC的内部实现有篇文章说的挺好,这里,文中在RTS一节中详细说了haskell的concurrent实现,里面提到了green thread,如果熟悉Go语言的话就会发现,ghc的concurrent实现和Go有点类</div> </li> <li><a href="/article/1913.htm" title="Java-Collections Framework学习与总结-LinkedHashMap" target="_blank">Java-Collections Framework学习与总结-LinkedHashMap</a> <span class="text-muted">BrokenDreams</span> <a class="tag" taget="_blank" href="/search/LinkedHashMap/1.htm">LinkedHashMap</a> <div>        前面总结了java.util.HashMap,了解了其内部由散列表实现,每个桶内是一个单向链表。那有没有双向链表的实现呢?双向链表的实现会具备什么特性呢?来看一下HashMap的一个子类——java.util.LinkedHashMap。       </div> </li> <li><a href="/article/2040.htm" title="读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory" target="_blank">读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/abstract/1.htm">abstract</a> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ package design.pattern; /* * Abstract Factory Pattern * 抽象工厂模式的目的是: * 通过在抽象工厂里面定义一组产品接口,方便地切换“产品簇” * 这些接口是相关或者相依赖的</div> </li> <li><a href="/article/2167.htm" title="压暗面部高光" target="_blank">压暗面部高光</a> <span class="text-muted">cherishLC</span> <a class="tag" taget="_blank" href="/search/PS/1.htm">PS</a> <div>方法一、压暗高光&重新着色 当皮肤很油又使用闪光灯时,很容易在面部形成高光区域。 下面讲一下我今天处理高光区域的心得: 皮肤可以分为纹理和色彩两个属性。其中纹理主要由亮度通道(Lab模式的L通道)决定,色彩则由a、b通道确定。 处理思路为在保持高光区域纹理的情况下,对高光区域着色。具体步骤为:降低高光区域的整体的亮度,再进行着色。 如果想简化步骤,可以只进行着色(参看下面的步骤1</div> </li> <li><a href="/article/2294.htm" title="Java VisualVM监控远程JVM" target="_blank">Java VisualVM监控远程JVM</a> <span class="text-muted">crabdave</span> <a class="tag" taget="_blank" href="/search/visualvm/1.htm">visualvm</a> <div>Java VisualVM监控远程JVM    JDK1.6开始自带的VisualVM就是不错的监控工具. 这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到界面   通过JMX连接远程机器, 需要经过下面的配置: 1. 修改远程机器JDK配置文件 (我这里远程机器是linux).    </div> </li> <li><a href="/article/2421.htm" title="Saiku去掉登录模块" target="_blank">Saiku去掉登录模块</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/saiku/1.htm">saiku</a><a class="tag" taget="_blank" href="/search/%E7%99%BB%E5%BD%95/1.htm">登录</a><a class="tag" taget="_blank" href="/search/olap/1.htm">olap</a><a class="tag" taget="_blank" href="/search/BI/1.htm">BI</a> <div> 1、修改applicationContext-saiku-webapp.xml <security:intercept-url pattern="/rest/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />  <security:intercept-url pattern=&qu</div> </li> <li><a href="/article/2548.htm" title="浅析 Flex中的Focus" target="_blank">浅析 Flex中的Focus</a> <span class="text-muted">dsjt</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Flex/1.htm">Flex</a><a class="tag" taget="_blank" href="/search/Flash/1.htm">Flash</a> <div>关键字:focus、 setFocus、 IFocusManager、KeyboardEvent 焦点、设置焦点、获得焦点、键盘事件 一、无焦点的困扰——组件监听不到键盘事件 原因:只有获得焦点的组件(确切说是InteractiveObject)才能监听到键盘事件的目标阶段;键盘事件(flash.events.KeyboardEvent)参与冒泡阶段,所以焦点组件的父项(以及它爸</div> </li> <li><a href="/article/2675.htm" title="Yii全局函数使用" target="_blank">Yii全局函数使用</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。(原文地址) 我们可以保存在globals.php在protected目录下。然后,在入口脚本index.php的,我们包括在</div> </li> <li><a href="/article/2802.htm" title="设计模式之单例模式二(解决无序写入的问题)" target="_blank">设计模式之单例模式二(解决无序写入的问题)</a> <span class="text-muted">come_for_dream</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a><a class="tag" taget="_blank" href="/search/volatile/1.htm">volatile</a><a class="tag" taget="_blank" href="/search/%E4%B9%B1%E5%BA%8F%E6%89%A7%E8%A1%8C/1.htm">乱序执行</a><a class="tag" taget="_blank" href="/search/%E5%8F%8C%E9%87%8D%E6%A3%80%E9%AA%8C%E9%94%81/1.htm">双重检验锁</a> <div>                在上篇文章中我们使用了双重检验锁的方式避免懒汉式单例模式下由于多线程造成的实例被多次创建的问题,但是因为由于JVM为了使得处理器内部的运算单元能充分利用,处理器可能会对输入代码进行乱序执行(Out Of Order Execute)优化,处理器会在计算之后将乱序执行的结果进行重组,保证该</div> </li> <li><a href="/article/2929.htm" title="程序员从初级到高级的蜕变" target="_blank">程序员从初级到高级的蜕变</a> <span class="text-muted">gcq511120594</span> <a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>软件开发是一个奇怪的行业,市场远远供不应求。这是一个已经存在多年的问题,而且随着时间的流逝,愈演愈烈。 我们严重缺乏能够满足需求的人才。这个行业相当年轻。大多数软件项目是失败的。几乎所有的项目都会超出预算。我们解决问题的最佳指导方针可以归结为——“用一些通用方法去解决问题,当然这些方法常常不管用,于是,唯一能做的就是不断地尝试,逐个看看是否奏效”。 现在我们把淫浸代码时间超过3年的开发人员称为</div> </li> <li><a href="/article/3056.htm" title="Reverse Linked List" target="_blank">Reverse Linked List</a> <span class="text-muted">hcx2013</span> <a class="tag" taget="_blank" href="/search/list/1.htm">list</a> <div>Reverse a singly linked list.   /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ p</div> </li> <li><a href="/article/3183.htm" title="Spring4.1新特性——数据库集成测试" target="_blank">Spring4.1新特性——数据库集成测试</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/spring+4.1/1.htm">spring 4.1</a> <div>目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异常处理 Spring4.1新特性——数据库集成测试脚本初始化 Spring4.1新特性——Spring MVC增强 Spring4.1新特性——页面自动化测试框架Spring MVC T</div> </li> <li><a href="/article/3310.htm" title="C# Ajax上传图片同时生成微缩图(附Demo)" target="_blank">C# Ajax上传图片同时生成微缩图(附Demo)</a> <span class="text-muted">liyonghui160com</span> <div>    1.Ajax无刷新上传图片,详情请阅我的这篇文章。(jquery + c# ashx)         2.C#位图处理  System.Drawing。         3.最新demo支持IE7,IE8,Fir</div> </li> <li><a href="/article/3437.htm" title="Java list三种遍历方法性能比较" target="_blank">Java list三种遍历方法性能比较</a> <span class="text-muted">pda158</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码例如以下: package com.hisense.tiger.list; import java.util.ArrayList; import java.util.Iterator;</div> </li> <li><a href="/article/3564.htm" title="300个涵盖IT各方面的免费资源(上)——商业与市场篇" target="_blank">300个涵盖IT各方面的免费资源(上)——商业与市场篇</a> <span class="text-muted">shoothao</span> <a class="tag" taget="_blank" href="/search/seo/1.htm">seo</a><a class="tag" taget="_blank" href="/search/%E5%95%86%E4%B8%9A%E4%B8%8E%E5%B8%82%E5%9C%BA/1.htm">商业与市场</a><a class="tag" taget="_blank" href="/search/IT%E8%B5%84%E6%BA%90/1.htm">IT资源</a><a class="tag" taget="_blank" href="/search/%E5%85%8D%E8%B4%B9%E8%B5%84%E6%BA%90/1.htm">免费资源</a> <div> A.网站模板+logo+服务器主机+发票生成 HTML5 UP:响应式的HTML5和CSS3网站模板。 Bootswatch:免费的Bootstrap主题。 Templated:收集了845个免费的CSS和HTML5网站模板。 Wordpress.org|Wordpress.com:可免费创建你的新网站。 Strikingly:关注领域中免费无限的移动优</div> </li> <li><a href="/article/3691.htm" title="localStorage、sessionStorage" target="_blank">localStorage、sessionStorage</a> <span class="text-muted">uule</span> <a class="tag" taget="_blank" href="/search/localStorage/1.htm">localStorage</a> <div>W3School 例子   HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储   之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>