一、熱身——先看實戰代碼
a.js 文件
// 定義Wall及內部方法;(function(window, FUNC, undefined){ var name = 'wall'; Wall.say = function(name){ console.log('I/'m '+ name +' !'); }; Wall.message = { getName : function(){ return name; }, setName : function(firstName, secondName){ name = firstName+'-'+secondName; } };})(window, window.Wall || (window.Wall = {}));index.jsp文件
<script type='text/javascript'> <% // Java 代碼直出 js out.print("Sniffer.run({'base':window,'name':'Wall.say','subscribe':true}, 'wall');/n"); %> // Lab.js是一個文件加載工具 // 依賴的a.js加載完畢后,則可執行緩存的js方法 $LAB.script("a.js").wait(function(){ // 觸發已訂閱的方法 Sniffer.trigger({ 'base':window, 'name':'Wall.say' }); });</script>這樣,不管a.js文件多大,Wall.say('wall')都可以等到文件真正加載完后,再執行。
二、工具簡介
// 執行 Wall.message.setName('wang', 'wall');Sniffer.run({ 'base':Wall, 'name':'message.setName', 'subscribe':true}, 'wang', 'wall');	看這個執行代碼,你也許會感覺困惑-什么鬼!
注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。    
新聞熱點
疑難解答