通常使用Yahoo! Map的时候,是采用其网站提供的方法:
js 代码
- <script type="</span">"text/javascript"
- src="http://api.maps.yahoo.com/ajaxymap?v=3.7&appid=YahooDemo">
- </script>
这种做法的缺点是在页面加载的时候就会去加载Yahoo! Map的javascript文件,这会造成页面加载速度变慢。因为它的javascript是采用document.write的方法来输出其需要包含的其他javascript文件的,因为不能直接采用动态创建script元素的方式来延迟加载。
我的做法是把Yahoo! Map的加载的javascript文件的内容提取出来,把其中的document.write改成动态的构建script元素的方式来加载。
xml 代码
- <html>
- <head>
- <style type="text/css">
- #map{
- height: 75%;
- width: 100%;
- }
- </style>
- <script type="text/javascript">
- var YAHOO=window.YAHOO||{};
- YAHOO.namespace=function(_1){ if(!_1||!_1.length){ return null; }
- var _2=_1.split(".");
- var _3=YAHOO;
- for(var i=(_2[0]=="YAHOO")?1:0;i<_2.length;++i){ _3[_2[i]]=_3[_2[i]]||{}; _3_3=_3[_2[i]]; } return _3; };
- YAHOO.namespace("util");
- YAHOO.namespace("widget");
- YAHOO.namespace("example");
- var YMAPPID = "YahooDemo";
- </script>
- </head>
- <body id="body">
- <div id="map"></div>
-
- <script type="text/javascript">
- function loadYMap() {
- loadByScript('http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/dom_2.0.1-b2.js');
- loadByScript('http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/event_2.0.0-b2.js');
- loadByScript('http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/dragdrop_2.0.1-b4.js');
- loadByScript('http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/animation_2.0.1-b2.js');
- loadByScript('http://us.js2.yimg.com/us.js.yimg.com/lib/map/js/api/ymapapi_3_7_1_11.js');
-
- displayMap();
- }
-
- function displayMap() {
- if (window.YMap) {
- // Create a map object
- var map = new YMap(document.getElementById('map'));
-
- // Add map type control
- map.addTypeControl();
-
- // Set map type to either of: YAHOO_MAP_SAT, YAHOO_MAP_HYB, YAHOO_MAP_REG
- map.setMapType(YAHOO_MAP_SAT);
-
- // Display the map centered on a geocoded location
- map.drawZoomAndCenter("San Francisco", 3);
- }
- else {
- setTimeout(displayMap, 200);
- }
- }
-
- function loadByScript(url) {
- var script = document.createElement("script");
- script.setAttribute("type", "text/javascript");
- script.src = url;
- var body = document.getElementById("body");
- body.appendChild(script);
- }
- </script>
- <p>
- <input type="button" value="Load..." onclick="loadYMap();"></input>
- </p>
- </body>
- </html>
上面的页面只有在点击了Load...按钮的时候才会去加载Yahoo! Map的javascript文件,并把地图显示出来。
分享到:
相关推荐
图片延迟加载,可以增加用户体验,jQuery图片延迟加载插件jQuery.lazyload,使用延迟加载在可提高网页下载速度。在某些情况下,它也能帮助减轻服务器负载。
Lazyload是通过延迟加载来实现按需加载,达到节省资源,加快浏览速度的目的。 网上也有不少类似的效果,这个Lazyload主要特点是: 支持使用window(窗口)或元素作为容器对象; 对静态(位置大小不变)元素做了大量...
实现网页内容、图片延迟加载,没有浏览到的不显示,只有浏览器看到的才显示。
图片延迟加载实例。在chrome network中查看效果。简单易用 无冗余代码
JQuery 图片延迟加载 lazyload
你必须修改 HTML 代码. 在 src 属性中设置展位符图片, demo 页面使用 1x1 像素灰色 GIF 图片.... 这里可以定义特定的 class 以获得需要延迟加载的图片对象. 通过这种方法你可以简单地控制插件绑定.
博客与文章作为例子,查询一个博客的时候并不是需要将其下面的文章都加载进来。把需要延迟加载的属性使用Lazy泛型,实例时候传入一个Fun委托。
Lazyload图片延迟加载效果,很值得去学习的案例!
LazyLoad 图片延迟加载效果示例 LazyLoad 图片延迟加载效果示例,这是由cloudgamer编写的一个封装插件,用它可以完成不少的效果,现在这个是图片延迟效果,也就是说,我们需要显示的图片会先加载,暂时用不上的也就...
jquery.lazyload用JQ实现图片延迟加载,即在浏览器看到的地方才加载图片。
页面延迟加载JS包 lazyload.js scrollloading.js
Lazyload图片延迟加载效果
js lazyload实现网页图片延迟加载特效
Blazor WebAssembly和Blazor Server的自动延迟加载支持!
通用的延迟加载工具LazyLoad,支持下载多个JavaScript文件,并能保证在所有浏览器中都以正确的顺序执行,同时还能加载CSS文件
lazyload.js实现图片异步延迟加载
LazyLoad图片延迟加载 密码111 这个其实是给mm看的,只是图片太多 做了一个延迟加载的动作
延迟加载图片jquery.lazyload.js 延迟加载图片jquery.lazyload.js
使用jquery 进行图片延迟加载,区别于jquery插件的lazyload。按需加载。