如何使用JavaScript从JSON中加载具有固定条目数量的新消息?

时间:2019-02-02 07:24:25

标签: javascript php

我正在托管一个聊天应用程序。服务器端,我将消息存储在JSON中。 (实施例:[{"message":"Hey!","time":1549087762},{"message":"What’s up?","time":1549087763}])。当发送我移离最旧的条目的消息如果json.messages计数大于10。因此,要总结这一点,有10只在一个时间显示的消息

由于数字递增逻辑,在聊天室达到10条消息后,我无法显示新消息。

function loadMessages() {
  var myRequest = new Request('https://console.chat/api/read.php?domain=' + domain);
  fetch(myRequest)
    .then(function(response) {
      return response.json();
    })
    .then(function(data) {
      for (var i = 0; i < data.messages.length; i++) {
        var time = Math.round(new Date().getTime() / 1000);
        if (data.messages[i].time < time) {
          console.log(data.messages[i].message);
        }
      }
    });
}

在我的代码示例中,我试图完成此操作,但失败了。我也尝试过将索引设置为9,以使其不断添加。无论如何,一旦聊天记录达到10条消息,它就不会再输出新消息,或者会无休止地向聊天室发送垃圾邮件。除了显而易见的解决方案:消息已正确保存在服务器端,这不是问题所在。

1 个答案:

答案 0 :(得分:1)

如果您想保留using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class Timer : MonoBehaviour { public Collide _collide; Text instruction; void Start() { instruction = GetComponent<Text>(); InvokeRepeating("time", 0, 1); } if (SceneManager.GetActiveScene().buildIndex == 7) { int timeLeft = 120; } else { int timeLeft = 90; } void time() { if (_collide.obji <= 0 && timeLeft > 0) { if (SceneManager.GetActiveScene().buildIndex == 1) { SceneManager.LoadScene(2); } else if(SceneManager.GetActiveScene().buildIndex == 4) { SceneManager.LoadScene(5); } else if (SceneManager.GetActiveScene().buildIndex == 7) { SceneManager.LoadScene(9); } } else if (_collide.obji > 0 && timeLeft <= 0) { if (SceneManager.GetActiveScene().buildIndex == 1) { SceneManager.LoadScene(3); } else if (SceneManager.GetActiveScene().buildIndex == 4) { SceneManager.LoadScene(6); } else if (SceneManager.GetActiveScene().buildIndex == 7) { SceneManager.LoadScene(8); } } if (timeLeft > 0) { timeLeft -= 1; instruction.text = (timeLeft).ToString(); } else if (timeLeft <= 0) { instruction.text = "0"; } // Update is called once per frame } } 数组的最后10个元素,可以这样做

messages

尽管在后端这样做比较明智。