九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
使用requirejs 調(diào)用百度地圖解決方案

百度地圖的模塊化加載方案

百度地圖的加載方式比較奇葩,比如百度提供的一個(gè) js 腳本地址是這樣http://api.map.baidu.com/api?v=2.0&ak=mXijumfojHnAaN2VxpBGoqHM,直接使用瀏覽器訪問(wèn),這個(gè)文件的內(nèi)容是這樣:

(function () {    window.BMap_loadScriptTime = (new Date).getTime();    document.write('<script type="text/javascript" src="http://api.map.baidu.com/getscript?v=2.0&ak=mXijumfojHnAaN2VxpBGoqHM&services=&t=20160503160001"></script>');})();
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

百度地圖通過(guò)一個(gè)腳本再去請(qǐng)求另外一個(gè)腳本,這樣的方式可能是我見(jiàn)的少吧,感覺(jué)這樣會(huì)比較安全。 
在直接訪問(wèn)后面這個(gè)網(wǎng)址,得到的就是真正的百度地圖api文件了。

看起來(lái)好像直接轉(zhuǎn)成 requirejs 加載的方式?jīng)]有問(wèn)題,那就試試?

// requirejs 的配置,因?yàn)榘俣鹊貓D是非AMD模式的,所以需要加上shim進(jìn)行轉(zhuǎn)換require.config({    paths: {        'BMap': ['http://api.map.baidu.com/api?v=2.0&ak=mXijumfojHnAaN2VxpBGoqHM'],    },    shim: {        'BMap': {            deps: ['jquery'],            exports: 'BMap'        }    }});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
// 調(diào)用百度地圖define(['jquery','BMap'], function(){    var map = new BMap.Map("map");});
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

來(lái)了來(lái)了,控制臺(tái)非常精準(zhǔn)的出現(xiàn)了錯(cuò)誤:

Failed to execute 'write' on 'Document': It isn't possible to write into a document from an asynchronously-loaded external script unless it is explicitly opened.ReferenceError: BMap is not defined(…)defineUncaught ReferenceError: BMap is not defined
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

第一個(gè)和第四個(gè)是控制臺(tái)打印出來(lái)的錯(cuò)誤信息,中間兩個(gè)是 requirejs 打印出來(lái)的錯(cuò)誤信息。其中第一個(gè)錯(cuò)誤只是黃色的感嘆號(hào)(因?yàn)楫?dāng)前請(qǐng)求的文件已經(jīng)加載,大概是提醒你異步加載的文件是不能再請(qǐng)求腳本的);最后一個(gè)錯(cuò)誤是紅色的叉,因?yàn)檫@里找不到BMap這個(gè)對(duì)象。

好了,大概問(wèn)題知道了。如何解決?

經(jīng)過(guò)大量的查找,發(fā)現(xiàn) requirejs 有async這樣一個(gè)插件,附上 requirejs 插件列表:https://github.com/requirejs/requirejs/wiki/Plugins 
這個(gè)插件可以使當(dāng)前加載的 js 腳本采用異步的方式加載更多的腳本文件,官方原話是這樣的:

async : Useful for JSONP and asynchronous dependencies (e.g. Google Maps).

所以配置好 async.js

require.config({    paths: {        'async': '../../lib/require/async'    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

調(diào)用百度地圖的時(shí)候這樣寫:

// 調(diào)用百度地圖define(['jquery','async!BMap'], function(){    var map = new BMap.Map("map");});
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

這樣就能成功的使用模塊化的技術(shù)調(diào)用百度地圖了

附上個(gè)人博客對(duì)應(yīng)博文地址: 
http://lancelot_lewis.coding.me/2016/05/24/requirejs/requirejs-map/

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
html5定位并在百度地圖上顯示的示例
app頁(yè)面中使用插件嵌入百度地圖
你可能用到的百度地圖效果(附源碼)
百度地圖API詳解之地圖API加載方式
使用百度地圖API在頁(yè)面添加百度地圖應(yīng)用
手機(jī)端/網(wǎng)頁(yè) 嵌套百度地圖
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服