Javascript 动态jQuery代码:有没有办法将其包含在文件中?

Javascript 动态jQuery代码:有没有办法将其包含在文件中?,javascript,jquery,google-maps,inline,external,Javascript,Jquery,Google Maps,Inline,External,我一直在使用内联jQuery进行开发和测试。我正在使用CodeIgniter,下面是我的观点 我的页面顶部有jquerycode。我的一些代码是动态的,因为它使用PHP变量,例如,在进行Ajax调用时,URL前面是 我已经让代码正常工作了,但我想把它放在一个外部JS文件中以保持整洁。我似乎想不出办法来做这件事。我说得对吗 我的网站的一个方面是谷歌地图。我到处都用。同样,部分代码是动态的,来自PHP。同样的问题 作为一个小小的改变,有了地图,我有很多页面,上面有很多稍微不同的地图。是否有任何方法可

我一直在使用内联jQuery进行开发和测试。我正在使用CodeIgniter,下面是我的观点

我的页面顶部有
jquerycode
。我的一些代码是动态的,因为它使用PHP变量,例如,在进行Ajax调用时,URL前面是

我已经让代码正常工作了,但我想把它放在一个外部JS文件中以保持整洁。我似乎想不出办法来做这件事。我说得对吗

我的网站的一个方面是谷歌地图。我到处都用。同样,部分代码是动态的,来自PHP。同样的问题


作为一个小小的改变,有了地图,我有很多页面,上面有很多稍微不同的地图。是否有任何方法可以有效地重用地图代码,或者我需要一些重复的代码?

好吧,就像直接在页面中一样。将
.js
文件重命名为
.php
脚本,并在
.php
文件中包含与以前相同的php代码。然后,在HTML文件中,使用
filename.php
(而不是
.js
)。web服务器将在脚本上调用PHP,并向浏览器发送生成的JavaScript。

那么,您的定制大多只是对google maps之类的东西的参数替换吗?如果是这样,为什么不让函数调用将JSON对象作为参数呢。让您的后端通过AJAX请求提供一些JSON数据,将数据传递给函数,就完成了。下载的JS代码更少,设置更简洁

// site.js
function displayMap(params) {
  // code to display google map using values from params
  // for instance:
  var lat = params.lat;
  var long = params.long;
}  
要使用此功能,请执行以下操作:

$.get('ajax/mapdata.json?id=5', function(data) {
  displayMap(data);
  alert('Load was performed.');
});
{
  lat: 232
  long: 123
}
通过创建以下内容从应用程序输出JSON:

$.get('ajax/mapdata.json?id=5', function(data) {
  displayMap(data);
  alert('Load was performed.');
});
{
  lat: 232
  long: 123
}

希望有帮助

您可以在主页中创建JSON数据块:

<script>
  var pageData = {
    something: 'whatever',
    somethingElse: [ 33.20, 19.02 ],
    moreStuff: false
  };
</script>

var pageData={
“随便什么”,
某物:[33.20,19.02],
更多:错
};

然后从脚本中引用变量“pageData”。

对不起,我不清楚-使用codeigniter是关键。我正在将数据传递到我的视图文件。例如,这是从数据库中获取的数据。在我看来,我有我的js代码——要利用命名js file.php的方法,我必须首先克服向文件传递数据的问题。。就这样,我被困在内联中了吗?不要这样做-你真的应该转向纯Javascript解决方案,正如你(正确地)所希望的那样。陶伦,谢谢你的回复。这很可能是我所需要的——但我不明白你在说什么。你能用白痴的语言解释一下吗?谢谢基本上我需要传递一些东西,比如我从数据库中获得的纬度和经度,base_url();值,一个用户名etc@Thomas有两种方法可以做到这一点:你可以像@Tauren建议的那样使用AJAX机制,或者你的主php页面可以将所有参数数据转储到你的外部纯Javascript找到并使用的JSON结构中。@Thomas:听起来你并没有真正改变JS逻辑,只是改变了值。这很好,因为在我看来,维护、版本控制、JS的可下载大小、缓存等等都会让这条路更加糟糕。出于您的需要,我强烈建议您在页面中或通过AJAX调用返回一个JSON对象,并使用一个函数获取该JSON并使用其中的值。Ok。我将不得不对此进行研究——这对我来说是新的,但基本的想法是我可以在我的页面中调用一个外部js文件,然后我可以对所有php变量进行编码(根据需要),并且这些变量可以用于已经调用的js文件吗?Thankswhich是一个external.js-它不需要命名为.php,因为我使用了一些内联js,将js变量设置为php值。。正确的?ThanksRight-它应该是一个“.js”文件中的普通旧Javascript。页面上的小Javascript块应该只包含脚本所需的动态数据。