發現Ajax真是好東東:可以只傳XML單純的用戶端想要的資料..
用戶端Ajax代碼:
<script language="JavaScript" type="text/JavaScript">
<!--
//向伺服器發起XMLHTTP請求。
var http_request = null;
function GetData()
{
//開始初始化XMLHttpRequest對象
if(window.XMLHttpRequest) //Mozilla 瀏覽器
{
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//設定MiME類別
http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) // IE瀏覽器
{
try
{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
// 異常,建立對象執行個體失敗
if (!http_request)
{
window.alert("不能建立XMLHttpRequest對象執行個體.");
return false;
}
http_request.onreadystatechange = processResponse;
// 確定發送請求的方式
http_request.open("GET", "../cgi-bin/status.cgi", true);
http_request.send(null);
}
// 處理返回資訊的函數
function processResponse()
{
if (http_request.readyState == 4) // 判斷對象狀態
{
if (http_request.status == 200) // 資訊已經成功返回,開始處理資訊
{
var result = http_request.responseText;
if(result.indexOf("#") != -1)
{
show(result);
}
else
{
}
}
else //頁面不正常
{
alert("您所請求的頁面有異常。");
}
}
}
CGI端可以採用CGIC庫(不錯的一個庫,不過Main()在庫裡面,把Main()改為一個普通介面最好):
#include <stdio.h>
#include "cgic.h"
#include <string.h>
#include <stdlib.h>
int ShowInfo();
int cgiMain()
{
cgiHeaderContentType("text/html"); //不能少
/* Now show the form */
fprintf(cgiOut, "1#2#3#",szName);
return 0;
}