我做了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 + " °C</span></div>" +
"<div><span>Względna wilgotność: </span><span>" + hum + " %RH</span></div>" +
"<div><span>Punkt rosy: </span><span>" + dew + " °C</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>