来自<script>标记</script>的参考服务端代码

时间:2010-10-29 08:11:21

标签: php javascript reference asp.net-mvc

我不知道我之前在哪里得到这个想法,但一年前我用php写了这个:

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

现在我已经准备好将这个网站转换为ASP.NET MVC网站了,我想知道最好的方法是将它转换成更“正常”的东西。

我可以考虑的选项:

  1. .js文件的自定义HttpHandler
  2. 继续使用脚本代码,但使用自定义路线指向某个操作
  3. 使用ajax调用修改javascript以加载服务器端数据
  4. getmarkers.php目前所做的是生成javascript以将标记添加到谷歌地图。在脚本标记内引用php的好处是

    1. 它永远不会被缓存,标记总是最新的(我知道有其他选择)
    2. 它保持我的HTML清除任何javascript
    3. 非常容易为生成的标记添加/删除某些字段
    4. 正在生成的内容的一个示例:

      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 个答案:

答案 0 :(得分:1)

我认为嵌入服务器生成的.js文件没有任何缺点。我个人会选择“自定义路由”选项,因此很明显它是生成的文件,将.js扩展名留给静态资源。

但是,以纯数据格式(如JSON)提供标记,并使用Ajax加载它们将具有以下优势

  • 您拥有中性“元格式”的数据,您可以在其他地方重复使用而无需构建新的数据源

  • 您可以将加载/ HTML生成过程保存在一个位置,即父页面或其中一个静态脚本,而不是控制HTML在服务器端脚本中的显示方式

  • 传输的数据量可能会减少

  • 整体上更清洁