2010-10-29 133 views
0

我不知道我以前上心,但一年前,我在php寫了這個:參考服務端代碼

<script type="text/javascript" src="http://www.mydomain.com/getmarkers.php"></script> 

現在我已經準備好這個網站轉換成ASP.NET MVC網站,我想知道什麼最好的方法是將其轉換爲更「正常」的東西?

我能想到的,其中的選項:

  1. 自定義的HttpHandler的.js文件
  2. 繼續使用script標籤,但有一個自定義路線的動作
  3. 修改JavaScript加載服務器端使用Ajax調用

什麼getmarkers.php目前做數據產生JavaScript來標記添加到谷歌地圖。引用腳本標籤中的PHP的好處是,

  1. 這是從來沒有緩存,該標記是始終保持最新(我知道有替代品)
  2. 它使我的HTML明確的任何JavaScript
  3. 很容易的添加/刪除某些字段生成的標記

的生成的內容是一個例子:

infoWindows[0] = new google.maps.InfoWindow({ 
    content: '<div style="width:250px;color:#000;">...html content for this specific marker...</div>' 
}); 

google.maps.event.addListener(markers[0], 'click', function() { 
    infoWindows[0].open(map, markers[0]); 
}); 

索引(本例中爲0)和html的內容有什麼變化。

問題
1.你認爲解決方案最適合
2.是不是不好通過調用服務器端的「文件」中引用的腳本。

回答

1

我看不出嵌入服務器生成的.js文件的缺點。我個人會選擇「自定義路由」選項,因此很明顯這是一個生成的文件,將.js擴展名保留爲靜態資源。

然而,服務標記像JSON純數據格式,並使用Ajax將有

  • 你有一箇中立的「元格式」,你可以重新將數據優勢加載它們在其他地方使用而無需構建新的數據源

  • 您可以將加載/ HTML生成過程保留在一個位置,即父頁面或其靜態腳本之一,而不是控制HTML在服務器端的外觀 - 側面腳本

  • 傳送的數據量被減少大概

  • 它是清潔器整體

+0

1用於頂端「,所以很明顯這是一個生成的文件,留下。js extension to static resources「。我的偏好也傾向於使用ajax獲取json的json方法,它只需要花費更長的時間來生成地圖,因爲內容將在加載後加載,現在加載之前。 – Peter 2010-10-29 09:48:00

+0

@Peter true,這是一個很好的觀點。使用Ajax時肯定會有明顯的閃爍 – 2010-10-29 10:04:05