我一直在使用内联jQuery进行开发和测试。我正在使用CodeIgniter,下面引用了我的观点。
我的页面顶部有<script="text/javascript">JQUERY CODE</script>
。我的一些代码是动态的,因为它使用PHP变量,例如在进行Ajax调用时,URL前面是<?php echo base_url(); ?>
。
我已经使代码工作了,但我想将它放在外部JS文件中以保持清洁。我似乎无法想到这样做。我是对的吗?
我网站的一个方面是Google地图。我到处都用它们。同样,代码的一部分是动态的,来自PHP。同样的问题。
作为一个小小的变化,使用地图,我有很多页面上有许多略有不同的地图。无论如何都有效地重用地图代码,或者我将不得不有一些重复的代码?
答案 0 :(得分:2)
您的自定义设置主要只是google地图等参数的替换吗?如果是这样,为什么不只是将一个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.');
});
通过创建以下内容从您的应用输出JSON:
{
lat: 232
long: 123
}
希望有所帮助!
答案 1 :(得分:0)
好吧,就像在页面内直接做一样。将.js
文件重命名为.php
脚本,并在.php
文件中包含与之前相同的PHP代码。然后,在HTML文件中,使用filename.php
(不是.js
)。 Web服务器将在脚本上调用PHP并向浏览器发送生成的JavaScript。
答案 2 :(得分:0)
您可以在主页面中创建一个JSON数据块:
<script>
var pageData = {
something: 'whatever',
somethingElse: [ 33.20, 19.02 ],
moreStuff: false
};
</script>
然后只从脚本中引用变量“pageData”。