2011-09-09 44 views
2

我有一個使用JavaServer Pages(JSP)創建的網頁,並帶有可以調用其他服務器的重要JavaScript(JS)。該頁面與之通信的URL取決於我部署到的服務器(讀取:環境)。如何分離出JavaScript常量?

我有兩種可能的策略(至少),我可以使用。

  1. 我可以在JS文件中定義一個服務器名稱常量,並在該網頁上使用腳本標記。
  2. 我可以用JSP頁面寫一個JS變量作爲某種動態內容。

我非常依賴策略1,但我不確定這兩者中的哪一個是否真的更好。我想知道最佳做法是什麼,爲什麼。

回答

1

我有同樣的問題,說實話,我不知道該怎麼做「正確」的方式,或者是,但我討厭全局變量,所以我現在做這種方式,

在JSP,

<script src="${pageContext.request.contextPath}/js/script.min.js"></script> 
<script type="text/javascript"> 
    init('${pageContext.request.contextPath}'); 
</script> 

那麼JS是,

function init(baseURL, undefined){ 
    ... 
} 

沒有全局變量擔心呢。

+0

如果路徑不是contextPath會怎樣? –

+0

@John這只是一個例子,它可以是任何東西。我只是想展示如何避免使用全局JavaScript var,因爲這通常是一個壞主意。 – Andrew

+0

我想我的意思是,如果我想讓它成爲JSP端的一個變量,我就剩下一些需要加載的.property文件,無論如何它都會以服務器上的文件結尾。無論如何,由於這是一個可行的方法,所以我對此表示贊同。不知道我是否最終會使用它。 –