I went to the website below to test my REST API & AJAX design.
And here are the suggestions:
Use persistent connections (keep alive): 14/100
FAILED - http://175.181.128.89/sd/
FAILED - http://175.181.128.89/sd/off.jpg
FAILED - http://175.181.128.89/arduino/status/1
FAILED - http://175.181.128.89/arduino/status/1
FAILED - http://175.181.128.89/arduino/status/1
Is it possible to keep alive the client request on Arduino YUN?
How may i set up the system to meet the requirement?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Arduino Yun I/O Demo</title>
<script type="text/javascript">
window.onload=Pinstatus;
function Pinstatus(){
morestatus();
}
function morestatus(){
setTimeout(morestatus, 800);
//document.getElementById("description").innerHTML = "Processing Status";
server = "/arduino/status/1";
request = new XMLHttpRequest();
request.onreadystatechange = updateasyncstatus;
request.open("GET", server, true);
request.send(null);
}
function updateasyncstatus(){
if ((request.readyState == 4) && (request.status == 200))
{
result = request.responseText;
//document.getElementById("description").innerHTML = result;
fullset = result.split("#");
//document.getElementById("description").innerHTML = fullset;
for(var i = 1, arrayLength=fullset.length; i < arrayLength; i++){
PinPair = fullset[i];
singleset = PinPair.split("=");
PN = singleset[0];
Pinstatus = singleset[1];
if (PN > 10)
{
ActNum = "action" + PN;
ImgNum = "image" + PN;
if (Pinstatus == 0)
{
PinAct = "1";
image = "off.jpg";
}
else
{
PinAct = "0";
image = "on.jpg";
}
document.getElementById(ActNum).value = PinAct;
document.getElementById(ImgNum).src = image;
}
}
}
}
function sendbutton(Pin,action){
//document.getElementById("description").innerHTML = "Processing Button Click";
server = "/arduino/digital/" + Pin + "/" + action;
request = new XMLHttpRequest();
request.onreadystatechange = updateasyncbutton;
request.open("GET", server, true);
request.send(null);
}
function updateasyncbutton(){
if ((request.readyState == 4) && (request.status == 200))
{
result = request.responseText;
//document.getElementById("description").innerHTML = result;
singleset = result.split(",");
PinType = singleset[0];
PinNum = singleset[1];
Pinstatus = singleset[2];
ActNum = "action" + PinNum;
ImgNum = "image" + PinNum;
if (Pinstatus == 0)
{
PinAct = "1";
image = "off.jpg";
}
else
{
PinAct = "0";
image = "on.jpg";
}
document.getElementById(ActNum).value = PinAct;
document.getElementById(ImgNum).src = image;
//ocument.getElementById("description").innerHTML = result;
}
}
</script>
</head>
<font face="Arial">
<table name="Table" border="1" cellpadding="6">
<tr> <th align="center" colspan="6" >控制面板</th></tr>
<tr>
<td align="center">
air conditioner 1
<input type="hidden" name="pin" value="12" id="pin12" />
<input type="hidden" name="action" value="0" id="action12" />
<img src="off.jpg" width="50" id="image12" onclick="sendbutton(document.getElementById('pin12').value,document.getElementById('action12').value);"/>
</td>
<td align="center">
heater
<input type="hidden" name="pin" value="13" id="pin13" />
<input type="hidden" name="action" value="0" id="action13" />
<img src="off.jpg" width="50" id="image13" onclick="sendbutton(document.getElementById('pin13').value,document.getElementById('action13').value);"/>
</td>
<td align="center">
air conditioner 2
<input type="hidden" name="pin" value="11" id="pin11" />
<input type="hidden" name="action" value="0" id="action11" />
<img src="off.jpg" width="50" id="image11" onclick="sendbutton(document.getElementById('pin11').value,document.getElementById('action11').value);"/>
</td>
</tr>
</table>
<p id="description"> </p>
</font>
</html>