在使用ajax显示TXT文件之前加载TXT文件

Loading TXT files before displaying them with ajax

本文关键字:TXT 文件 加载 显示 ajax      更新时间:2023-09-26

我正在js中开发一个小型文本游戏,我发现保存文本的最简单方法是使用文本文件。我可以在不同的文件夹中订购它们,它们非常轻,很容易识别和编辑,以防我需要更改。

我正在使用ajax 加载它们

    $.ajax({
    url: 'text/example.txt',
    success: function(text){
            document.getElementById("main").innerHTML = document.getElementById("main").innerHTML + text;
    }
});

正如在另一个帖子中向我建议的那样。

老实说,到目前为止,它在单一情况下运行得很好。当只需要显示一个TXT文件时,实际上没有问题。但是,不幸的是,在需要以正确的顺序显示许多不同的文件(比如说大约10个不同的文件)的情况下,文本会变得混乱,加载不正常。我想这是因为它无法足够快地获取txt文件。

所以在这一点上,我真的不太确定该怎么办

有没有办法让我的脚本在打印下一段文本之前等待,然后再显示尚未加载的文本?

也许是一种在访问网站时加载所有txt文件的方法?

我的知识非常有限,所以我真的不确定如何解决这个问题。

试着在谷歌和stackoverflow上搜索,我发现的线程都没有帮助我,也许是因为我真的不是专家。

您可以通过回调实现,以下方式会在它们完成后逐一调用ajax:

//setup an array of AJAX url
var ajaxes  = [{ url : 'text/example.txt'}, { url : 'text/example1.txt'}],
    current = 0;
//declare your function to run AJAX requests
function do_ajax() {
    //check to make sure there are more requests to make
    if (current < ajaxes.length) {
        //make the AJAX request with the given data from the `ajaxes` array of objects
        $.ajax({
            url      : ajaxes[current].url,
            success  : function (text) {
                document.getElementById("main").innerHTML = document.getElementById("main").innerHTML + text;
                //increment the `current` counter and recursively call this function again
                current++;
                do_ajax();
            }
        });
    }
}
//run the AJAX function for the first time when you want
do_ajax();