XML.com

XML.com
  Home | Resources | FAQs |
    
  Resource Centers
บทนำ
ตัวอย่าง
.
.








 

Down Load Source Code (2.76Kb)

ตัวอย่างโปรแกรม

ในที่นี้จะยกตัวอย่าง Source Code ด้วย Java Script โดยจะยกตัวอย่างเป็นการดึงข้อมูลที่เป็น XML แล้วนำมาแสดงผลในรูปของ Dynamic HTML ทุกๆ 2 วินาที

มี file ทั้งหมด 3 file คือ

1. web1.htm เป็น file ที่อยู่บน webserver นอก fire wall

2. remoteload.asp เป็น file บน webserver นอก fire wall เพื่อดึงข้อมูลจาก server ใน firewall

3. web2.asp เป็น file บน webserver ภายใน fire wall ซึ่งจะทำงานจากการเรียกของ web server ตามข้อ 1 เท่านั้น

web1.htm -> remoteload.asp -> [FireWall] -> web2.asp

ตัวอย่างในส่วนของ JavaScript
 

<SCRIPT LANGUAGE=JavaScript>
function display(code)
{ switch(code)
{ case '-1': return '<img src=images/fault.gif>';break;
case '0': return '<img src=images/normal.gif>';break;
case '1': return '<img src=images/shutdown.gif>';break;
case '2': return '<img src=images/ready.gif>';break;
default: return '-';break;
}
}

function GetData()
{
var objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
var szURL = "remoteload.asp?";
var szHttpMethod = "POST";
objHTTP.Open(szHttpMethod, szURL, false);
objHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded");
objHTTP.Send("aaa");

var szReply = objHTTP.ResponseText;
if (objHTTP.status != 200)
{
szReply = "";
}
return szReply;
}

function update()
{ var beamcurrent,beamlifetime;
var injector,linac,lbt,syn,hbt,str,door,trigger;
var xmlData = GetData();

var objXmlDom = new ActiveXObject("Microsoft.XMLDOM");
if (!objXmlDom.loadXML(xmlData))
{
var sErr = "Loading..\n" ;
beamcurrent = sErr;
}
else
{
var nodes = objXmlDom.selectNodes("/DATA/BEAM/CURRENT");
beamcurrent = nodes[0].text;
nodes = objXmlDom.selectNodes("/DATA/BEAM/LIFETIME");
beamlifetime = nodes[0].text;
if (beamcurrent < 0.15 )
beamlifetime = 'No Beam';
if (beamlifetime > 0)
beamlifetime = beamlifetime +' Min';
nodes = objXmlDom.selectNodes("/DATA/STATUS/TRIGGER");
trigger = nodes[0].text;
if ( trigger=='1')
beamlifetime = 'Topping up';
nodes = objXmlDom.selectNodes("/DATA/STATUS/BEAMON");
injector = nodes[0].text;
nodes = objXmlDom.selectNodes("/DATA/STATUS/LINAC");
linac = nodes[0].text;
nodes = objXmlDom.selectNodes("/DATA/STATUS/LBT");
lbt = nodes[0].text;
nodes = objXmlDom.selectNodes("/DATA/STATUS/SYN");
syn = nodes[0].text;
nodes = objXmlDom.selectNodes("/DATA/STATUS/HBT");
hbt = nodes[0].text;
nodes = objXmlDom.selectNodes("/DATA/STATUS/STR");
str = nodes[0].text;

nodes = objXmlDom.selectNodes("/DATA/STATUS/DOOR");
door =eval(nodes[0].text);
}
Current.innerHTML = '<b><font size=5 face=Verdana, Arial, Helvetica, sans-serif>'+beamcurrent+' mA</font></b>';
LifeTime.innerHTML = '<b><font size=4 face=Verdana, Arial, Helvetica, sans-serif>'+beamlifetime+' </font></b>';
if (injector == 8 ) Injector.innerHTML = '<img src=images/beamon.gif>';
else
Injector.innerHTML = display(injector);
Linac.innerHTML =display(linac);
Lbt.innerHTML = display(lbt);
Syn.innerHTML = display(syn);
Hbt.innerHTML = display(hbt);
if (str == 8 ) Str.innerHTML = '<img src=images/inject.gif>';
else
Str.innerHTML = display(str);
}


</SCRIPT>

web1.htm

ไว้แสดงผลเป็น graphics

 

 

 

 

อ่านข้อมูลผ่าน firewall

 

 

 

 

 

 

 

 

แสดงผลบนหน้าเว็บ

  สำหรับ file remoteload.asp ที่จะดึงข้อมูลจาก อีกเว็บหนึ่ง  
  <!--#include file=getUrlContent.asp-->
<%
URLSTRING ="http://203.148.238.200/web2.htm"
strResult = getUrlContent(URLSTRING)
response.write strResult

%>

กำหนด IP ของเครื่องที่อยู่ใน firewall
  สำหรับ include file นั้นก็จะคล้ายๆ กับข้างบน ทั้งนี้ อาจจะกำหนด URLSTRING ไว้ใน include file ก็ได้หากมี server อยู่ใน firewall เพียงตัวเดียว  
  <%
Function GetURLContent(strUrl)
Set oHttp =server.createobject("Microsoft.XMLHTTP")
oHttp.open "GET",strURL,false
oHTTP.send "a" '---- send dummy
strResult=ohttp.responseText
set ohttp=nothing
getUrlContent= strResult
End Function

%>

 
  สำหรับข้อมูล ใน file web2.htm นั้นก็เป็น file xml ธรรมดา ที่อาจจะมีการสร้างขึ้นมาด้วยโปรแกรมที่รันอยู่บน webserver ด้านใน firewall  
 

<DATA><BEAM>
<CURRENT> 0.00</CURRENT>
<LIFETIME>18.29</LIFETIME>
</BEAM>
<STATUS>
<BEAMON>-1</BEAMON>
<LINAC> -1</LINAC><LBT>-1</LBT><SYN>-1</SYN><HBT>-1</HBT> <STR>-1</STR><DOOR>0</DOOR><TRIGGER>1</TRIGGER>
</STATUS>
</DATA>

 

 

 

 

 




 
Contact Us | Our Mission | Privacy Policy | Advertise With Us | Site Help
Copyright © 2002 Copy เค้ามาจาก www.xml.com จะได้ดูเหมือนๆกัน