动态加载Javascript

时间:2012-12-13 23:59:21

标签: javascript ajax jquery unobtrusive-javascript

我目前正在使用JQuery构建一个Ajax Web应用程序,允许用户在同一区域中多次打开相同的页面。通过允许它,虽然它往往会导致与DOM和“唯一ID”的冲突。

因此,我创建了一个系统,如果你喜欢在发送出去之前在PHP中使用唯一的id,那么javascript是预编程的。然后将其作为.php文件发送给用户。

代码与此类似: 用户希望在content_area中加载页面,该内容区域向服务器发送AJAX请求,其中该content_area的ID成为唯一ID。服务器发回一个类似“myscript.php”的页面,其中包含以下内容:

    <script>
$(function() {
    var unique_id="<?php echo $unique_id; ?>"

    var new_div=$("<div id='content" + unique_id + "'>");
    });
    </script>

我想知道这是一个坏主意,还有其他选择吗?

2 个答案:

答案 0 :(得分:0)

您可以预先渲染网站的整个(大)部分,然后使用一些JS mapper / loader来动态加载脚本并执行自定义代码。

您可以创建jQuery插件来处理功能的不同部分,并在需要时加载它们。 在JS Loaders上有jster.net的整个部分。对于路由,您可以使用类似Davis Mapper的内容。

最好让JS资源尽可能保持静态,并通过AJAX调用处理动态内容到服务器端。希望这有帮助。 :)

答案 1 :(得分:-2)

你想添加一个php标题,以便浏览器知道它是一个JavaScript文件,而不是php。

<?php
header('Content-type: text/javascript');
?>
<script>
$(function() {
 var unique_id="<?php echo $unique_id; ?>"
 var new_div=$("<div id='content" + unique_id + "'>");
 });
</script>

然后你可以使用:

<script type="text/javascript" src="myscript.php">