我正在使用js中的小文本游戏,我发现保存文本的最简单方法是使用文本文件。我可以在不同的文件夹中订购它们,它们非常轻巧,并且在我需要进行更改时,它们很容易识别和编辑。
我正在使用ajax加载它们
$.ajax({
url: 'text/example.txt',
success: function(text){
document.getElementById("main").innerHTML = document.getElementById("main").innerHTML + text;
}
});
正如我在另一个帖子中向我建议的那样。
老实说,到目前为止,在单例情况下,它一直运行良好。当只需要显示一个TXT文件时,实际上没有问题。但是,不幸的是,在需要以正确的顺序显示许多不同文件的情况下(假设大约有10个不同的文件),文本会混乱并且无序加载。我打算假设这是因为它无法足够快地获取txt文件。
所以在这一点上我真的不太清楚该怎么做。
有没有办法让我的脚本在打印下一段文字之前等待,然后再显示一段尚未加载的文字?
也许在访问网站时加载所有txt文件的方法?
我的知识非常有限,所以我真的不确定如何解决这个问题。
尝试搜索google和stackoverflow,我找到的所有帖子都没有帮助我,也许是因为我真的不是专家。
答案 0 :(得分:1)
您可以通过回调实现,以下方式将在完成后逐个调用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();