嵌入式Linux之我行——C+CGI+Ajax在S3C2440中的應用
http://blog.chinaunix.net/uid-22174347-id-1786907.html
1,建立檔案test.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>liuxizhen</title>
<script language="JavaScript" src="xmlhttpreq.js"></script>
</head>
<body>
<h3>獲取伺服器當前時間</h3>
<p>伺服器當前時間是:<div id="current_time"></div></p>
<input type="button" value="提交" onclick="sender()" />
</body>
</html>
2,建立js檔案xmlhttpreq.js
特別注意其中的在回撥函式裡有個setTimeout,還設定客戶端的更新週期。
/*
*建立非同步訪問物件
*/
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", "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;
setTimeout(sender, 1000);
}
else
{
alert("結果為空!");
}
}
else
{
alert("頁面出現異常!");
}
}
}
/*
setTimeout(sender, 1000);
*/
3,建立linux下的cgi檔案
#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));
}
生成test.cgi的可執行檔案。
將test.cgi和html,js檔案放在伺服器的www目錄下。登入伺服器檢視,時間就是變化的,可以自動更新的。
相關文章
- Linux在工業與嵌入式的應用Linux
- 嵌入式核心板在麻醉系統中的應用
- 嵌入式Linux在工業控制領域中的應用(轉)Linux
- union 的概念及在嵌入式程式設計中的應用程式設計
- Linux在實際中的應用Linux
- Linux的非同步IO(AIO)在Oracle中應用Linux非同步AIOracle
- Linux 系統中隨機數在 KVM 中的應用Linux隨機
- 嵌入式在電子價籤系統的應用
- 設計模式之Decorator在餐館中的應用設計模式
- Linux高階應用CpuMemSets在Linux中的實現(轉)Linux
- 嵌入式Linux—Framebuffer應用程式設計Linux程式設計
- Linux和Windows嵌入式應用博弈(轉)LinuxWindows
- 遠端除錯在Linux車機中的應用除錯Linux
- 小乾貨~ NFS在Linux系統中的應用NFSLinux
- 在Linux中,如何進行容器技術的應用?Linux
- 設計模式之--策略模式及其在JDK中的應用設計模式JDK
- Refs 在React中的應用React
- MQTT 在 Elixir 中的應用MQQT
- HMM在NLP中的應用HMM
- SSD在SQLServer中的應用SQLServer
- HugePage在mysql中的應用MySql
- HugePage在oracle中的應用Oracle
- sar 在unix中的應用
- 嵌入式linux應用程式移植方法總結Linux
- Google 計劃在 Chromebook 中增加容器化的 Linux 應用GoChromeLinux
- Linux在企業中的應用尚不成熟 (轉)Linux
- 基於嵌入式GPRS DTU模組在共享按摩椅系統中應用
- protobuf 在嵌入式ARM平臺的應用(c語言版)C語言
- 在Linux中應用screen建立虛擬終端Linux
- “小眾”之美 ——Ruby在QA自動化中的應用
- RedHat Linux口令恢復任我行RedhatLinux
- redis在nodejs中的應用RedisNodeJS
- redis在python中的應用RedisPython
- 堆在java中的應用--PriorityQueueJava
- Service Worker 在 PWA 中的應用
- 6、Zookeeper在kafka中的應用Kafka
- apr在tomcat中的應用Tomcat
- 索引在ORACLE中的應用分析索引Oracle