2012-11-08 53 views
0

我正在做一個有趣的簡單的JavaScript遊戲引擎,和我正在成爲一種惱人的問題,它工作時。得到錯誤使得JavaScript的遊戲

目前包含javascript文件的方式是通過一個index.html頁面調用我的javascript「main」,並將<script type="text/javascript"標籤中的所有javascript文件包含在<head>部分中。

這是工作得相當好,除了它無法加載javascript文件的一個頁面的6次左右刷新,也許1。我收到如下錯誤:GET http://localhost:8000/js/Input.js。它正常工作時,所有的文件組合在一起,並精縮,所以我想這個事做與文件的異步加載和遊戲中的一切開始之前加載?雖然我不確定。我現在包括大約25個文件,並且隨着我添加更多,問題似乎越來越嚴重。

有沒有更好的辦法,包括JavaScript文件?我試圖讓這個容易就儘可能地工作,所以我不希望有做一噸的服務器端的東西。 (目前,我只是用python中SimpleHTTP服務器命令)

回答

1

如果錯誤是HTTP錯誤,網址是完全相同當它失敗,成功時一樣,那麼這個問題是不是與相關你的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); 
    }); 
}); 
+0

謝謝,我認爲這個問題必須是服務器,然後根據你的第一款中的信息。在問幾個朋友之後,他們提到python http服務器很粗略。 – phosphoer