boa cgic ajax 機制驗證
阿新 • • 發佈:2019-01-05
1、動態重新整理機制
簡介
通過js呼叫windows的定時函式 “setInterval()”,定時呼叫客戶端的js程式碼,發起伺服器請求,來達到資料的實時重新整理
程式碼
test.c 程式碼
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { time_t current; struct tm *timeinfo; time(¤t); timeinfo = localtime(¤t); //這一句一定要加,否則非同步訪問會出現頁面異常 printf("Content type: text/html\n\n"); printf("%s", asctime(timeinfo)); }
txmlhttpreq.js 程式碼
function createXHR() { var xhr; try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch(E) { xhr = false; } } if (!xhr && typeof XMLHttpRequest != 'undefined') { xhr = new XMLHttpRequest(); } return xhr; } /* *非同步訪問提交處理 */ function sender() { xhr = createXHR(); if(xhr) { xhr.onreadystatechange=callbackFunction; //test.cgi後面跟個cur_time引數是為了防止Ajax頁面快取 xhr.open("GET", "cgi-bin/test.cgi?cur_time=" + new Date().getTime()); xhr.send(null); } else { //XMLHttpRequest物件建立失敗 alert("瀏覽器不支援,請更換瀏覽器!"); } } /* *非同步回撥函式處理 */ function callbackFunction() { if (xhr.readyState == 4) { if (xhr.status == 200) { var returnValue = xhr.responseText; if(returnValue != null && returnValue.length > 0) { document.getElementById("current_time").innerHTML = returnValue; } else { alert("結果為空!"); } } else { alert("頁面出現異常!"); } } }
test.html 程式碼
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>C+CGI+Ajax在S3C2440中的應用</title> <script language="JavaScript" src="xmlhttpreq.js"></script> <script> setInterval(sender,500); </script> </head> <body> <h3>獲取伺服器當前時間</h3> <p>伺服器當前時間是:<div id="current_time"></div></p> <input type="button" value="提交" onclick="sender()" /> </body> </html>