1

我正在尝试从我控制的服务器加载一个非常简单的文本文件(例如:0 online:1 online: Username2 online: Username, Username),该文件会根据我的世界服务器上的用户数量而变化,并将其加载到 javascript var 中,以便我最终可以将其加载到我的 Pebble 并有或多或少的实时更新。(阅读:没有 jquery)(另请阅读:我几乎不知道我实际上在做什么,如果有更好的方法,请让我知道。)。

我做了很多谷歌搜索,主要指向我使用 JSON XMLHTTPRequests(编辑:XMLHTTPRequests 可能是必要的),但它们对于我需要的东西似乎过于复杂(即获取通过 HTTP 提供的文本文件的内容,把它塞进一个 var,然后让 Pebble 在屏幕上吐出来。)

如果没有 JQuery,甚至没有 JSON,我如何将文本文件的内容加载到 javascript var 中?

一些注意事项:

  • 服务器最终将通过 Hamachi 访问,但如果我能在本地运行它,我会非常激动。
  • 按照这个答案,我得到了这个结果。本地 IP 同上。
4

2 回答 2

2

这很容易做到,只需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 上),您应该在 Pebble 教程的第 3 步中获取战利品,它使用天气数据正是这样做的。

于 2015-01-09T01:52:15.677 回答
1

最简单的方法是将文本文件格式化为 js 文件:

var playerinfo = "1 online: Username";

并像通常的 js 一样包含脚本:

<script type="text/javascript" src="http://localhost/mytextfile.js"></script>

然后页面将有一个变量playerinfo供您的 js 代码使用。

于 2015-01-08T12:42:00.450 回答