有没有一种方法可以从与网页相同的服务器上的文本文件加载数据
Is there a way to load data from a text file on the same server as the web page?
最近我开始开发一个简单的自上而下的程序,在这个程序中,你可以在地图上移动玩家角色,并放大和缩小地图。
一切都很顺利,我画了一个背景,现在我想开始画一些瓷砖。
目前我有一个看起来像这样的东西:
var tileset1 = new Image();
tileset1.src = "Images/Tileset1.gif";
var tx = [];
var ty = [];
var txo = [];
var tyo = []; //Background tile x and y on the map and the x and y offset in the image for drawing
var tilesize = 32; //constant for each tiles width and height in pixels.
function map1data() {
"use strict";
tx[0] = 0;
ty[0] = 0;
txo[0] = 0;
tyo[0] = 0;
tx[1] = 32;
ty[1] = 0;
txo[1] = 32;
tyo[1] = 0;
}
map1data();
ctx.drawImage(tileset1, txo[i], tyo[i], tilesize, tilesize, tx[i], ty[i], tilesize, tilesize);
这很好,但我的主要问题是使用数组绘制瓦片,并且必须通过将其硬编码到脚本中来给出每个瓦片的属性。
如果我的地图上有100个瓦片,我将不得不手动编写400行代码,这并不理想。
所以我想知道的是,有没有一种方法可以在网页所在的实际服务器上获取一个纯文本文件(如中所示,在与索引页相同的根文件系统中?),并为其内容设置一个变量,就像我对图像所做的那样?而不是必须使用DOM从特定的服务器url请求它?
您不想使用ajax有什么原因吗?您可以按如下方式使用PHP(假设以下文件名为myscript.PHP):
//place any opening javascript code here if necessary.
<?php
// open a file using the fopen function
// read each line of the file using the fgets function
// convert each line into your appropriate javascript code such as an array etc.
// echo the javascript code
//place any closing javascript code here if necessary.
然后,您可以像包含任何其他javascript文件一样包含它:
<script src="myscript.php"></script>
此外,由于它是在PHP脚本中,您可以引用文件,无论它们是在web根目录中还是在web根之外。
您可以使用XMLHttpRequest API。这样做的目的是告诉浏览器从服务器请求指定的文件,而不加载新页面并将其呈现给用户。然后,您可以将返回的数据分配给代码中的一个变量,并在那里使用它。
如果你不介意使用jQuery,你可以使用.get()
方法,它有更简单的语法:
$.get( "tiles.txt", function( data ) {
// assign 'data' to an existing variable or pass into a function
});
您可能希望将数据存储为JSON或其他类似格式,而不是纯文本(这样更容易操作)。
相关文章:
- 如何防止在客户端/服务器两侧对文本框进行sql注入
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- 在浏览器中打开文本文件-服务器上出现错误
- jQuery/JS:从服务器同步读取文本文件
- 无法在实时服务器中发布富文本编辑器内容
- 编辑存储在服务器上的文本文件
- 如何在服务器端的文本中添加按钮单击事件
- 将从服务器获取的数据加载到输入文本表单中
- 我正在尝试将javascript文本框的输入保存回服务器.我想从保存的弹出文本框中获得输入,以重命名文件夹
- 将jQuery参数发送到服务器端并创建输出文本文件
- 从服务器向AWS JS SDK发送签名,而不是使用纯文本密钥
- ASP.NET 从 JQuery 设置时,服务器端的文本框值为空
- 如何通过服务器找到用户是否开始响应?[i.e.In 编辑他们是否键入的文本]
- 使用Meteor从服务器获取文本文件
- 在通过 flask Web 服务器呈现的 html 页面中显示 iframe 中文本文件的内容
- 如何将文本输入保存为变量,然后提交到服务器(ajax 和 javascript)
- 在不使用JS中的任何服务器的情况下读取文本文件
- 突出显示焦点上的文本框服务器控件
- 如何在 asp.net 中更新服务器端执行的 UI 按钮文本
- Javascript/AJAX/发送到服务器文本和JSON文件