2011-09-19 48 views
0

我試圖從外部單獨的文件調用JavaScript加載一個單獨的JavaScript,並想知道如何去做這件事的最佳方式。具體來說,這只是一個基本的谷歌地圖頁面,我想組織代碼更好一點。我希望將標記變量分成多個組,並將這些變量組存儲在單獨的文件中,然後在頁面的主javascript頁頭中調用這些文件。我想限制這個代碼只是html和javascript來保存它的簡單性,以便未來更新的目的不是在這方面知識淵博的人。我不會用JavaScript編寫大量代碼,如果已經有了一個內置函數,那就太好了。這純粹是美學,只是爲了讓代碼更清潔。任何幫助或建議,將不勝感激。謝謝。從多個文件加載單個JavaScript文件

+0

我也許應該更具體一點。標記變量組在初始化和填充谷歌地圖的函數內。我想從外部存儲這些標記並將它們回調到該函數中。我也想在沒有任何外部框架或API的情況下做到這一點。不同的人將來需要編輯不同的組以添加標記。這就是爲什麼我要從外部調用這些。這使得人們可以更輕鬆地找到要添加到的組,而不必查看標記的整個頁面以找到它。 – Brendan

回答

1

如果我理解你是對的,你不想從其他幾個JavaScript文件中調用一個JavaScript文件。你只想保存一些變量組。嗯,你可以將它保存 - 與服務器端的數據庫,或者可能是與http://www.w3.org/TR/webstorage/http://www.w3.org/TR/IndexedDB/

+0

你是對的。無論如何你都知道這樣做沒有服務器?這實際上不是一個實時頁面,所以它不會通過服務器訪問。這基本上只是一個將完全在本地運行的地圖應用程序。這就是爲什麼這需要儘可能簡單。我可以理解,考慮到這種情況,是否無法做到這一點,因爲我無法親自想到在我的限制參數範圍內做到這一點的方法。 – Brendan

+0

正如我所說的,你可以使用WebStorage或IndexedDB,或者可能是[cookies](http://en.wikipedia.org/wiki/HTTP_cookie) –

+1

可能,你會發現[lawnchair](http: //westcoastlogic.com/lawnchair/)是一個很好的解決方案。 –

1

您可以添加引用到外部文件:

<html> 
    <head> 
    <script type="text/javascript" src="colorGradient.js"></script> 
    <script type="text/javascript" src="xpath.js"></script> 
    <script type="text/javascript" src="kml2.js"></script> 
    <style type="text/css"> ... </script> 
    </head> 
    <body> 
    .... 
    </body> 
</html>   
+1

這些不是單獨的腳本文件,而是一組js腳本中的變量組。 – Brendan

1

你可以嘗試「功能加載」和/或「按需加載JavaScript的」框架。由於您正在嘗試使用Google地圖,因此我建議您使用Google Loader API,它與您正在尋找的內容非常接近。

例如:使用簡單的JS,你可以做以下....

<script type="text/javascript"> 
    google.load("search", "1"); 
    google.load("jquery", "1.4.2"); 
    google.load("jqueryui", "1.7.2"); 
</script> 

...這將加載多個文件。

0

拆分你的代碼爲你的發展是一個好主意。因此,有很多框架可以幫助您在MVC和psudo MVC模型的幫助下組織您的代碼。

嘗試:

http://maccman.github.com/spine/

http://documentcloud.github.com/backbone/

但什麼阻止你對生產環境有一個文件中的一切嗎? 它更容易在服務器請求。而你要在這個構建過程反正整合...

但如果你堅持在將它們添加到DOM,你可以做,當然這一點:

document.write(unescape('%3Cscript src="yourfile.js"%3E%3C/script%3E')) 

這將增加

<script src="yourfile.js"></script> 

你的dom

0

如果我正確理解你的問題,你想分割成多個.js文件的單個腳本。據我所知,只要你包含一個標籤來加載每個文件,這應該工作得很好。您可能需要按順序加載文件(即,不要包含調用尚未完成的函數的文件)。

但是,請注意,拆分腳本會導致更多的服務器調用,從而減慢頁面加載速度。在大多數情況下,僅包含一些腳本甚至不會在加載時間上產生明顯的差異。

+0

我該如何去做這件事?就像我之前說的,我沒有接近JS大師。 – Brendan

+1

我指的是Cheeso的建議。 根據對您問題的更新,我不確定這是否是您想要執行的操作。 – Andrew

相關問題