如何将小文本文件的内容加载到 javascript var wo/JQuery 中?
How can I load the contents of a small text file into a javascript var wo/JQuery?
我正在尝试从我控制的服务器加载一个非常简单的文本文件(例如:0 online:
或 1 online: Username
或 2 online: Username, Username
),该文件根据数量而变化minecraft 服务器上的用户,到 javascript var,这样我最终可以将它加载到我的 Pebble 上,并或多或少地进行实时更新。 (阅读:没有 jquery)(另请阅读:我几乎不知道我实际上在做什么,如果有更好的方法,让我知道。)。
我已经完成了 lot of googling which mostly points me to using JSON and (编辑:XMLHTTPRequests 可能是必要的)但它们对于我需要的东西来说似乎过于复杂(即获取通过 HTTP 提供的文本文件的内容,填充它在一个 var 中,然后让 Pebble 将它吐到屏幕上。)
如果没有 JQuery,甚至可能没有 JSON,我如何才能将文本文件的内容加载到 javascript 变量中?
一些注意事项:
- 服务器最终将通过 Hamachi 访问,但如果我能在本地运行它,我会非常兴奋。
- 关注 this answer, I get this result。同上本地 IP。
最简单的方法是将文本文件格式化为 js 文件:
var playerinfo = "1 online: Username";
并像通常的 js 一样包含脚本:
<script type="text/javascript" src="http://localhost/mytextfile.js"></script>
然后页面会有一个变量playerinfo
供您的js代码使用。
这很容易做到,只需在脚本的开头包含 XmlHttpRequest
的包装器(这样更易于使用):
var xhrRequest = function (url, type, callback) {
var xhr = new XMLHttpRequest();
xhr.onload = function () {
callback(this.responseText);
};
xhr.open(type, url);
xhr.send();
};
然后这样称呼它:
xhrRequest(url, 'GET', function(responseText) {
console.log("This is the content you got: " + responseText);
});
如果你在 JSON 中格式化你的内容,它实际上会让你更容易,因为你不必解析文件,你可以使用 JavaScript 自动为你解析它:
例如,如果回复是:
{ onlineCount: 42, usernames: [ "Alice", "Bob", "Charlie", "etc" ] }
那么你可以这样处理:
xhrRequest(url, 'GET',
function(responseText) {
// responseText contains a JSON object
var json = JSON.parse(responseText);
// Now you can process this as a JavaScript dictionary
console.log("Number of online players: " + json.onlineCount);
console.log("First player: " + json.usernames[0]);
// And send messages to Pebble
Pebble.sendAppMessage({ 0: json.onlineCount });
}
);
对于完整示例和 C 端(在 Pebble 上),您应该在 Step 3 of the Pebble Tutorial 获取战利品,天气数据正是这样做的。
我正在尝试从我控制的服务器加载一个非常简单的文本文件(例如:0 online:
或 1 online: Username
或 2 online: Username, Username
),该文件根据数量而变化minecraft 服务器上的用户,到 javascript var,这样我最终可以将它加载到我的 Pebble 上,并或多或少地进行实时更新。 (阅读:没有 jquery)(另请阅读:我几乎不知道我实际上在做什么,如果有更好的方法,让我知道。)。
我已经完成了 lot of googling which mostly points me to using JSON and (编辑:XMLHTTPRequests 可能是必要的)但它们对于我需要的东西来说似乎过于复杂(即获取通过 HTTP 提供的文本文件的内容,填充它在一个 var 中,然后让 Pebble 将它吐到屏幕上。)
如果没有 JQuery,甚至可能没有 JSON,我如何才能将文本文件的内容加载到 javascript 变量中?
一些注意事项:
- 服务器最终将通过 Hamachi 访问,但如果我能在本地运行它,我会非常兴奋。
- 关注 this answer, I get this result。同上本地 IP。
最简单的方法是将文本文件格式化为 js 文件:
var playerinfo = "1 online: Username";
并像通常的 js 一样包含脚本:
<script type="text/javascript" src="http://localhost/mytextfile.js"></script>
然后页面会有一个变量playerinfo
供您的js代码使用。
这很容易做到,只需在脚本的开头包含 XmlHttpRequest
的包装器(这样更易于使用):
var xhrRequest = function (url, type, callback) {
var xhr = new XMLHttpRequest();
xhr.onload = function () {
callback(this.responseText);
};
xhr.open(type, url);
xhr.send();
};
然后这样称呼它:
xhrRequest(url, 'GET', function(responseText) {
console.log("This is the content you got: " + responseText);
});
如果你在 JSON 中格式化你的内容,它实际上会让你更容易,因为你不必解析文件,你可以使用 JavaScript 自动为你解析它:
例如,如果回复是:
{ onlineCount: 42, usernames: [ "Alice", "Bob", "Charlie", "etc" ] }
那么你可以这样处理:
xhrRequest(url, 'GET',
function(responseText) {
// responseText contains a JSON object
var json = JSON.parse(responseText);
// Now you can process this as a JavaScript dictionary
console.log("Number of online players: " + json.onlineCount);
console.log("First player: " + json.usernames[0]);
// And send messages to Pebble
Pebble.sendAppMessage({ 0: json.onlineCount });
}
);
对于完整示例和 C 端(在 Pebble 上),您应该在 Step 3 of the Pebble Tutorial 获取战利品,天气数据正是这样做的。