【问题标题】:GET errors making javascript game制作 javascript 游戏时出现 GET 错误
【发布时间】:2012-10-28 03:58:02
【问题描述】:

我正在制作一个简单的 javascript 游戏引擎以供娱乐,但在处理它时遇到了一种烦人的问题。

目前我包含 javascript 文件的方式是拥有一个 index.html 页面,该页面调用我的 javascript “main”,并在 <head> 部分包含我所有带有 <script type="text/javascript" 标记的 javascript 文件。

这工作得相当好,除了可能有六分之一左右的页面刷新它无法加载其中一个 javascript 文件。我收到如下错误:GET http://localhost:8000/js/Input.js。当所有文件组合在一起并缩小时它工作正常,所以我认为这与文件的异步加载和游戏在所有内容加载之前开始有关?不过我不确定。我现在包含大约 25 个文件,随着我添加更多文件,问题似乎变得更糟。

有没有更好的方法来包含 javascript 文件?我正在努力使这项工作尽可能容易,所以我不想做大量的服务器端工作。 (目前我只是在 python 中使用 SimpleHTTP 服务器命令)

【问题讨论】:

    标签: javascript file get include


    【解决方案1】:

    如果错误是 HTTP 错误,并且 URL 在失败时与成功时完全相同,那么问题与您的 JS 无关,而与您的 Web 服务器有关。

    但是,如果您使用类似 $.getScript 的东西并且错误与一些未初始化的变量有关,那么您可能正在循环所有要包含的脚本并执行 getScript 为他们中的每一个。如果是这样,由于 getScript 使用 AJAX 请求来加载 JS,因此无法保证脚本的执行顺序。为了解决这个问题,如果您不介意性能下降,因为这种情况似乎仅在您的开发环境中运行时,您可以链接请求,以便在加载前一个(必需的)JS文件之前不发出请求,因此顺序执行你的脚本文件:

    var dfr = $.Deferred().resolve();
    var scripts = ["script1.js", "..."];
    
    $.each(scripts, function(i, script) {
        dfr = dfr.pipe(function() {
            $.getScript(script);
        });
    });
    

    【讨论】:

    • 谢谢,根据您第一段中的信息,我认为问题一定出在服务器上。问了几个朋友后,他们提到 python http 服务器有点粗略。
    猜你喜欢
    • 1970-01-01
    • 2015-08-16
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 2017-01-02
    • 2023-01-11
    • 1970-01-01
    相关资源
    最近更新 更多