html 5

本文介绍了一个实时温度状态监测系统的设计与实现,系统采用HTML、CSS和JavaScript构建,能够定时更新和显示盒子设备的温度数据、状态及刷新时间,通过AJAX技术与服务器交互获取最新数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!doctype html>
<html lang = "en">
<head>
<title> Temperatures </title>
<meta charset = "utf-8">
<link rel="stylesheet" href="./font-awesome/css/font-awesome.min.css">
<style type="text/css">
body {
  color: #0f0;
  background: #fff;
  margin: 10;
  padding: 10;
  font-family: Georgia;
  }
 
table.gridtable { 
    font-family: verdana,arial,sans-serif; 
    font-size:11px; 
    color:#333333; 
    border-width: 1px; 
    border-color: #666666; 
    border-collapse: collapse;
//width:30%; 

table.gridtable th { 
    border-width: 1px;
    padding: 8px; 
 text-align:left;
    border-style: solid; 
    border-color: #666666; 
    background-color: #dedede; 

table.gridtable td { 
    border-width: 1px;
    padding: 8px; 
 text-align:left;
    border-style: solid; 
    border-color: #666666; 
    //background-color: #ffffff; 

#tbrankIcon
{
float:right;
}
</style>


<script>
var count = 0;
var boxDate='2017-08-15 14:40:00';
var xmlHttp;
function showTemps()
{
   var id = "temp" + 1;
   var li = document.getElementById(id);
   li.innerHTML = "The temperatures is: 111.";
}
function handleRefresh()
{
 var li = document.getElementById("temp1");
 li.innerHTML ="The temperatures is:" + count;
 count++;
 //alert("I'm alive");
}

function GetXmlHttpObject()
{
 var xmlHttp=null;
 try
  {
   // Firefox, Opera 8.0+, Safari
   xmlHttp=new XMLHttpRequest();
  }
 catch (e)
  {
  //Internet Explorer
   try
    {
   xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
   catch (e)
    {
   xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
 return xmlHttp;
}

function showBoxStatus()
{
 
 xmlHttp=GetXmlHttpObject();
 if (xmlHttp==null)
  {
  alert ("Browser does not support HTTP Request");
  return;
  }
 var url="http://localhost/retrievestatus.php";
 url=url+"?onlinedate="+boxDate;
 url=url+"&sid="+Math.random();
 xmlHttp.onreadystatechange=stateChanged;
 xmlHttp.open("GET",url,true);
 xmlHttp.send(null);
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
   
 //var rec = JSON.parse(xmlHttp.responseText);
 var dataObj=eval("("+xmlHttp.responseText+")")
 
 var rows = dataObj['data'];
 //var x = 0;
 for(var x=0; x<rows.length; x++)
 {
     //alert(rows[x]);
  var record = String(rows[x]);
  var boxstatus = record.split(",");
  addRows(boxstatus[0],boxstatus[1],boxstatus[2],boxstatus[3]);
  boxDate = boxstatus[3];

 }

    var boxTable = document.getElementById("boxlog");
    makeSortable(boxTable);
 document.getElementById("txtHint").innerHTML="Last update date: " + boxDate;


 }
}
function addRows(boxId,parentId,status,onlinedate)
{
        var boxTable = document.getElementById("tbMain");

        var newTr = boxTable.insertRow();
  
  if(status == 1) //close...
  {
      newTr.style.color="#f00";
   newTr.style.background="#0ff";
   //newTr.style.background="#f00";
  }
          
   
     //添加列
        var newTd0 = newTr.insertCell();
        var newTd1 = newTr.insertCell();
        var newTd2 = newTr.insertCell();
  var newTd3 = newTr.insertCell();
  
            //设置列内容和属性

        newTd0.innerHTML = boxId;
        newTd1.innerHTML = parentId;
  
        newTd2.innerHTML = status;
  newTd3.innerHTML = onlinedate;
//            saveTableValue();//保存值
        return false;
}

        //删除一行
function deleRow()
{
    //获得行索引
    //两个parentElement分别是TD和TR,rowIndex是TR的属性
 var boxTable = document.getElementById("boxlog");
    var cGetRow = window.event.srcElement.parentElement.parentElement.rowIndex;
  
    boxTable.deleteRow(cGetRow);

//            saveTableValue();//保存值
    return false;
}

function makeSortable(table) {
    var headers=table.getElementsByTagName("th");
 var rankicon = table.getElementsByTagName("i");
 //alert(rankicon.length);
    for(var i=0;i<headers.length;i++)
 {
        (function(n)
  {
            var flag=false;
            headers[n].onclick=function()
   {  
    var thval = headers[n].getElementsByTagName("i");
    
    if(rankicon[n].className == "fa fa-chevron-up")
    {
     rankicon[n].setAttribute("class","fa fa-chevron-down");
    }
    else
    {
     rankicon[n].setAttribute("class","fa fa-chevron-up");
    }
//var testval=headers[n].textContent||cell1.innerText;//获得文本内容
  //alert(n);
    
                // sortrows(table,n);
                var tbody=table.tBodies[0];//第一个<tbody>
    //alert(tbody);
                var rows=tbody.getElementsByTagName("tr");//tbody中的所有行
                rows=Array.prototype.slice.call(rows,0);//真实数组中的快照

                //基于第n个<td>元素的值对行排序
                rows.sort(function(row1,row2){
                    var cell1=row1.getElementsByTagName("td")[n];//获得第n个单元格
     
                    var cell2=row2.getElementsByTagName("td")[n];
                    var val1=cell1.textContent||cell1.innerText;//获得文本内容
                    var val2=cell2.textContent||cell2.innerText;

                    if(val1<val2){
                        return -1;
                    }else if(val1>val2){
                        return 1;
                    }else{
                        return 0;
                    }
                });
                if(flag){
                    rows.reverse();
                }
                //在tbody中按它们的顺序把行添加到最后
                //这将自动把它们从当前位置移走,故没必要预先删除它们
                //如果<tbody>还包含了除了<tr>的任何其他元素,这些节点将会悬浮到顶部位置
                for(var i=0;i<rows.length;i++){
                    tbody.appendChild(rows[i]);
                }

                flag=!flag;
            }
        }(i));
    }
}
function initTable()
{
   var boxTable = document.getElementById("boxlog");
   var headers=boxTable.getElementsByTagName("th");
 var _img = document.createElement("img");
 _img.setAttribute("id", "floatImage");
 _img.setAttribute("src", "icon/箭头下.png");
 
 _img.setAttribute("align", "left");
 _img.setAttribute("height", "15px");
 _img.setAttribute("width", "15px");
 
 //_img.setAttribute("onclick", "clickImage()");
 //_img.onclick = function(){ //点击时响应事件
 //makeSortable(boxTable);
 //window.location = "http://baidu.com"; 跳转url
 //};
 
   for(var i=0;i<headers.length;i++)
   {
       headers[i].appendChild(_img);
   }
}
window.onload = function()
{
//initTable();

   // addRows('B170000004','G1788889','0','2017-08-15 14:40:00');
 showBoxStatus();

    setInterval(showBoxStatus, 3000);
}
</script>
</head>
<body>
<div class="input-group margin-bottom-sm">
  <span class="input-group-addon"><i class="fa fa-envelope-o fa-fw"></i></span>
  <input class="form-control" type="text" placeholder="Email address">
</div>
<div class="input-group">
  <span class="input-group-addon"><i class="fa fa-key fa-fw"></i></span>
  <input class="form-control" type="password" placeholder="Password">
</div>

<nav class="list-group">
  <a class="list-group-item" href="#"><i class="fa fa-home fa-fw" aria-hidden="true"></i>&nbsp; Home</a>
  <a class="list-group-item" href="#"><i class="fa fa-book fa-fw" aria-hidden="true"></i>&nbsp; Management</a>
  <a class="list-group-item" href="#"><i class="fa fa-cog fa-fw" aria-hidden="true"></i>&nbsp; Settings</a>
</nav>

<h1>Temperatures Status</h1>

<table id="boxlog" class="gridtable"> 
    <thead> 
        <tr> 
            <th>盒子编号<i id="tbrankIcon" class="fa fa-chevron-down" aria-hidden="true"></i></th> 
            <th>网关编号<i id="tbrankIcon" class="fa fa-chevron-down" aria-hidden="true"></i></th> 
            <th>盒子状态<i id="tbrankIcon" class="fa fa-chevron-down" aria-hidden="true"></i></th> 
            <th>刷新时间<i id="tbrankIcon" class="fa fa-chevron-down" aria-hidden="true"></i></th>                       
        </tr> 
    </thead> 
   <tbody id="tbMain"></tbody>
 </table>   
<p>
<div id="txtHint"><b></b></div>
</p>

</body>
</html>

转载于:https://my.oschina.net/u/3428739/blog/1517414

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值