Javascript依赖关系不通过Ajax加载

时间:2014-06-18 21:37:48

标签: javascript php ajax

我有一个index.php文件,它将根据$ _GET变量加载内容。所以,它基本上就像这样......

<?php
   $problem_id = $_GET['problem_id'];
   include('include/' . $problem_id . '.php');
?>

因此,如果用户点击问题类型#8,8.php将包含在index.php文件中,并且将显示其内容。

问题是我现在正在使用AJAX加载8.php(或选择的任何文件)。一些文件依赖于其他javascript文件(即<script type="text/javascript" src="/include/js/api/utils.js"></script>)来工作。当我通过AJAX运行index.php文件时,似乎没有加载这些依赖项。如果我在URL中使用普通的$ _GET变量(即http://myscript.com?problem_id=8)运行它,它可以正常工作。

这是AJAX的已知问题吗?不管怎么说呢?

感谢。

1 个答案:

答案 0 :(得分:2)

您尚未指定加载所需的javascript文件的位置。但是,如果我们假设它们被你的php脚本包含在内,那么当你直接访问那个php脚本时它们会起作用,但当你通过ajax包含它时它们不会。

我的建议是简单的方法,就是在你的调用页面(index.php)中包含所有的javascript,以便它可以随时使用,无论动态加载哪个内容。

因此,请始终提前加载依赖项,并且不要将它们包含在包含的php文件中。

当您通过ajax加载内容时,它确实需要是可以合并到现有页面DOM中的html,加载javascript并执行它并不是那么简单,尽管这是可能的(使用requirejs或类似)但我认为可能上述简单的方法对你有用。