在没有AJAX的情况下将HTML加载到Javascript变量中

时间:2012-01-22 17:47:58

标签: javascript html ajax

我有一个网站,其中总动态内容非常小(比如说<50k)。该网站本身只是一个5-10页的大多数香草HTML的集合。为了将标题等与其他内容分开,我通常使用AJAX(这样,每当用户点击某些内容时,或者事先就让AJAX查询获取相关的HTML)。

在这种情况下,由于动态内容非常小,因此执行10个AJAX查询来加载所有内容似乎是不必要的(并且浪费)。问题是:“是否存在服务器端方式使用其他文件中的文本加载javascript变量而没有Web请求?”

我问的原因是,我可以很容易地手动执行此操作,只需使用加载了变量的.js文件:

var page1 = "<p>Here's some web content!</p>"
var page2 = "<p>And some more!</p>"

问题解决了。除了现在我的内容与我的Javascript混淆了,我不得不担心转义引号,我在缩进地狱,等等。我当然可以做服务器端脚本(在php或ruby或其他任何东西),但对于这么简单的事情,这似乎有点重量级。

有没有更简洁的方法可以在服务器端完成此操作?我取“否”作为答案,在这里,如果这是最好的。

1 个答案:

答案 0 :(得分:1)

您可以通过<script type="text/javascript" src="myJavaScriptGlobals.php"></script>

将PHP扩展文件定义为javascript

让PHP动态地将所有数据拉到一起,并输出有效的JavaScript。

echo '
var page1 = "'.str_replace('"','\"',$page1ContentFromFOPEN).'"; // escape double quotes
';

这使得您无需在页面加载后执行任何http请求,并从page1等已分配的变量实现即时内容加载。

更新为仅删除双引号