這是用ajax的技術使用javascript
用戶端連結伺服器在以php連結遠端伺服器
最後在傳回用戶端
var xmlHttp = createXmlHttpRequestObject();
var serverAddress = "smartpoxyping.php;
var getNumberParams= "action=GetNumber" + "&min=1"+"&max=100";
var chechAvailabilityParams = "action=checkavailability;
var requestscount=0;
var checkinterval=10;
var updateinterval=1; '等待1秒取得新亂數
var updateintervalifserverbusy=10; '伺服器連線繁忙時等待10秒後重試
var minserverbufferlevel=50;
function createXmlHttpRequestObject()
{
var xmlhttp;
try
{
xmlhttp = new xmlhttprequest();
}
catch(e)
{
var xmlhttpversions = new array("MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XmlHTTP");
for (var i=0; i
{
xmlhttp = new Activexobject(xmlhttpversions[i]);
}
catch(e){}
}
}
if (!xmlhttp)
alert("建立xmlhttprequest物件產生錯誤");
else
reurn xmlhttp;
}
function process()
{
if (xmlhttp)
{
try
{
if (requestscounter % checkinterval==0)
{
xmlhttp.open("GET",serveraddress+ "?" +checkavailabilityparams,true);
xmlhttp.onreadystatechange = handlecheckingavailability;
xmlhttp.send(null);
}
else
{
xmlhttp.open("GET",serveraddress+ "?" +checkavailabilityparams,true);
xmlhttp.onreadystatechange = handlegettingnumber;
xmlhttp.send(null);
}
}
catch(e)
{
alert("無法連結伺服器")
}
}
}
function handlecheckingavailability()
{
if (xmlhttp.readystate ==4)
{
if (xmlhttp.status ==200)
{
try
{
checkavailability();
}
chatch(e)
{
alert("伺服器連結錯誤");
}
}
else
{
alert("伺服器讀取錯誤");
}
}
}
function checkavailability()
{
var response = xmlhttp.responsetext;
if (response.length > 5 || response.length ==0)
throw(response.length ==0 ? "伺服器錯誤" : response);
mydiv = document.getelementbyid("mydivelement");
if(response >= minserverbufferlevel)
{
mydiv.innerHtml += "伺服器緩衝" + respnose + "%, " + "開始接收新數字
";
requestconnter++;
settimeout("process();",updateinterval*1000)
}
else
{
mydiv.innerHtml += "伺服器緩衝" + respnose + "%, " + "將重新檢查
";
settimeout("process();",updateinterval*1000)
}
}
這些為js的程式碼片段
懶的key註解了 = =