Javascript硬编码变量

时间:2013-01-13 22:07:21

标签: javascript variables hardcoded

我有一个简单的js文件:

//base.js

...
var url = '/post/' + id + '/comment';
...

我正在使用Symfony2所以在服务器端所有的URL都是由路由器生成的,而且我在js中使用硬编码的URL会让我感到烦恼。

有没有办法让它们更有活力?
这些是我想到的解决方案,但我满意:

  • <div data-url="<?php path('post_comment'); ?>">
  • 等HTML标记中定义它们
  • 在内联脚本标记<script language="text/javascript">...</script>
  • 中定义它们

我认为某些大型网站(SO,GitHub等)的js文件中的网址是硬编码的,我是对的吗?

2 个答案:

答案 0 :(得分:1)

Friends of Symfony JS Routing Bundle完全符合您的需求

var url = Routing.generate('some_route_to_expose', { foo: 'bar' });
// url is http://somehost.com/app_dev.php/my_route

该软件包还允许您转储,编译和缩小生成的javascript。很棒!

答案 1 :(得分:0)

您应该至少通过在配置对象中定义所有常量变量并使用属性名称或getter函数来访问它来最小化命名空间污染。