AJAX请求超时

时间:2018-07-19 13:05:30

标签: javascript jquery arrays ajax get

我做了ajax来获取对php文件的请求,该文件通过snmp获取温度数据并返回一个json数据数组。

现在,对于每个位置,我仅尝试生成一次div,然后仅更新值。

在第一个ajax请求上执行此操作很麻烦,以生成已经将内部值存储到数组中的div,然后显示它们,但它们不会显示在特定的div中。

我可以在控制台中看到该阵列已正确填充。但是我不能让它以id = data显示div中的所有元素。尝试使用html(),append(),text()并没有任何效果。

我应该如何修改代码,以便请求不会花费那么长时间?

我正在考虑为第一个ajax请求针对每个位置温度创建一次容器,然后使用setIntervals仅获取值并对其进行更新,因此我猜它不会在请求上花费太多时间,因此我将避免使用页面闪烁是因为只有数字会改变,但是我该如何实现呢?

我不想重新加载页面。

      $(document).ready(function(){

          var tr_str = [];
          var menu_list = [];

          $.ajax({
              url: 'getData.php',
              type: 'get',
              dataType: 'JSON',
              success: function(response){
                  var len = response.length;
                  for(var i=0; i<len; i++){
                      var location = response[i].location;
                      var temp_int = response[i].temp_int;
                      var temp = response[i].temp;
                      var hum = response[i].hum;
                      var dew = response[i].dew;

                      tr_str[i] = "<div id='locc" + i + "' class='location'>" +
                          "<span class='title'>" + location + "</span>" +
                          "<div class='temp'" + i + "><span>Temperatura: </span><span id='check'>" + temp + " &degC</span></div>" +
                          "<div><span>Względna wilgotność: </span><span>" + hum + " %RH</span></div>" +
                          "<div><span>Punkt rosy: </span><span>" + dew + " &degC</span></div>" +
                          "</div>";

                      menu_list[i] = "<label for='loc" + i + "'>" +
                          "<input type='checkbox' id='loc" + i + "' />" +
                          "<span class='css-checkbox'></span>" +
                          "<p>" + location + "</p>" +
                          "</label>";
                  }

              },

          });


          console.log(tr_str);
          console.log(menu_list);


            $("#data").html(tr_str[0]);

<!-- language: lang-html -->

    <body>
    <div id="data" class="wrapper"></div>
    </body>

0 个答案:

没有答案