使用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>');
})();

百度地圖通過(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'
        }
    }
});
// 調(diào)用百度地圖
define(['jquery','BMap'], function(){
    var map = new BMap.Map("map");
});

來(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(…)

define

Uncaught ReferenceError: BMap is not defined

第一個(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'
    }
}

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

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

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末整陌,一起剝皮案震驚了整個(gè)濱河市拗窃,隨后出現(xiàn)的幾起案子瞎领,更是在濱河造成了極大的恐慌,老刑警劉巖随夸,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件九默,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡宾毒,警方通過(guò)查閱死者的電腦和手機(jī)驼修,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)诈铛,“玉大人乙各,你說(shuō)我怎么就攤上這事〈敝瘢” “怎么了耳峦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)焕毫。 經(jīng)常有香客問(wèn)我蹲坷,道長(zhǎng),這世上最難降的妖魔是什么邑飒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任循签,我火速辦了婚禮,結(jié)果婚禮上幸乒,老公的妹妹穿的比我還像新娘懦底。我一直安慰自己,他們只是感情好罕扎,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布聚唐。 她就那樣靜靜地躺著,像睡著了一般腔召。 火紅的嫁衣襯著肌膚如雪杆查。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,816評(píng)論 1 290
  • 那天臀蛛,我揣著相機(jī)與錄音亲桦,去河邊找鬼。 笑死浊仆,一個(gè)胖子當(dāng)著我的面吹牛客峭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播抡柿,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼舔琅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了洲劣?” 一聲冷哼從身側(cè)響起备蚓,我...
    開(kāi)封第一講書(shū)人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤课蔬,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后郊尝,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體二跋,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年流昏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扎即。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡横缔,死狀恐怖铺遂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情茎刚,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布撤逢,位于F島的核電站膛锭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蚊荣。R本人自食惡果不足惜初狰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望互例。 院中可真熱鬧奢入,春花似錦、人聲如沸媳叨。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)糊秆。三九已至武福,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間痘番,已是汗流浹背捉片。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留汞舱,地道東北人伍纫。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像昂芜,于是被迫代替她去往敵國(guó)和親莹规。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,774評(píng)論 25 707
  • JavaScript 資源大全中文版很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列的...
    wwmin_閱讀 3,411評(píng)論 1 92
  • 【導(dǎo)讀】:GitHub 上有一個(gè) Awesome – XXX 系列的資源整理嘹履。awesome-javascript...
    pizCat閱讀 4,750評(píng)論 8 126
  • 生時(shí)有多歡欣,死時(shí)就有多痛心债热。 ——題記 對(duì)于死亡砾嫉,本以為...
    遺釋悟塵閱讀 253評(píng)論 0 0
  • 不知是誰(shuí)說(shuō)過(guò)“你的氣質(zhì)里有你走過(guò)的路、愛(ài)過(guò)的人和讀過(guò)的書(shū)”窒篱。我想說(shuō)焕刮,這些都是我人生里最美好的風(fēng)景。 “腳下的路”墙杯,...
    夏天lzz閱讀 362評(píng)論 6 4