網(wǎng)頁無閃爍(無刷新)技術(shù)的實(shí)例代碼分享
本文將提供給大家學(xué)習(xí)分享的是關(guān)于網(wǎng)頁無閃爍(無刷新)技術(shù),希望對大家有用。
無刷新實(shí)現(xiàn)的幾點(diǎn)要點(diǎn):
1,要設(shè)置好獲得數(shù)據(jù)的url
2,要實(shí)現(xiàn)數(shù)據(jù)的調(diào)用
3,要實(shí)現(xiàn)數(shù)據(jù)的無刷新
先看js是怎樣實(shí)現(xiàn)的
以下是lesen的利用js的無刷新
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
<script language='java script' type='text/java script'>
<!--關(guān)鍵在這個(gè)函數(shù)-->
function GetData(url)
{
try
{
DataLoad.src = url;
}
catch(e)
{
return false;
}
}
</script>
<script id='DataLoad' language='java script' type='text/java script' defer></script>
</head>
<body>
<input type='button' name='Submit' value='請求' onClick='GetData('dataload.aspx')'>
</body>
</html>
相信大家也許已經(jīng)看過這代碼,這個(gè)是利用onClick事件實(shí)現(xiàn)數(shù)據(jù)庫更新加載的
但是數(shù)據(jù)調(diào)用和自動(dòng)刷新還沒有。
所以我對這個(gè)作了如下修改
<script language='java script' type='text/java script'>
function GetData(url)
{
url='login1.asp'
try
{
DataLoad.src = url;
}
catch(e)
{
return false;
}
{
var timeoutid = setTimeout('GetData()',2000)
}
}
</script>
<body>
<script id='DataLoad' language='java script' type='text/java script' defer></script>
<script language='java script' type='text/java script'>
<!--
function MM_callJS(jsStr) { //v2.0
return eval(jsStr)
}
//-->
</script>
<body onLoad='MM_callJS('GetData()')'>
<span id=xx></span>
</body>
先解釋:
url='login1.asp' 定義數(shù)據(jù)url
var timeoutid = setTimeout('GetData()',2000) 定義GetData()這個(gè)的刷新時(shí)間
<script language='java script' type='text/java script'>
<!--
function MM_callJS(jsStr) { //v2.0
return eval(jsStr)
}
//-->
</script>
<body onLoad='MM_callJS('GetData()')'>
利用 MM_callJS 這個(gè)實(shí)現(xiàn)網(wǎng)頁下載時(shí)加載GetData()
<span id=xx></span> 調(diào)用login1.asp里面的xx數(shù)據(jù)
login1.asp 設(shè)置如下
{
xx.innerHTML='<%=('now')%>'
}
這樣通過innerHTML我們就能調(diào)用數(shù)據(jù)了。
此外還有一些實(shí)現(xiàn)無刷新的:
如經(jīng)典里的文件替換無刷新
經(jīng)典里的JS替換文件實(shí)現(xiàn)無刷新。
<head>
<script language='java script'>
var value = '';
var timeid = null;
var ready = false;
function showvalue() {
ready = false;
text.innerHTML = '請稍候……';
if (scr.src == '1.js') scr.src = '2.js';
else scr.src = '1.js';
loadscr();
}
function loadscr() {
if (ready) {
text.innerHTML = value;
}
else {
clearTimeout(timeid);
timeid = setTimeout('loadscr();', 10);
}
}
</script>
</head>
<BODY aLink=#000020 bgColor=#ffffff id=all link=#000020 text=#070155 topMargin=10 vLink=#000020 marginheight='10' marginwidth='10'>
<button type='button' onclick='showvalue();'>切換</button>
<span id='text'></span>
<script id='scr' language='java script' src=''></script>
</body>
1.js
value = '這是第1個(gè)腳本';
ready = true;
2.js
value = '這是第2個(gè)腳本';
ready = true;
只要加個(gè)定時(shí)間刷新 showvalue() 就會自動(dòng)刷新了。
還有的就是利用XML
原理和方法大概和js的一樣,只不過XML要求高一點(diǎn)而已
<SCRIPT language=java script>
<!--
function bar(){
var oXMLDoc = new ActiveXObject('MSXML'); //創(chuàng)建'MSXML'對象
sURL = 'login.asp' //獲取登陸狀態(tài)數(shù)據(jù)的地址
oXMLDoc.url = sURL; //load數(shù)據(jù)
var oRoot=oXMLDoc.root; //獲取返回xml數(shù)據(jù)的根節(jié)點(diǎn)
if(oRoot.children != null)
{
//根據(jù)返回的數(shù)據(jù)在客戶端顯示
xx.innerHTML=oRoot.children.item(0).text; //用戶
yy.innerHTML=oRoot.children.item(1).text; //時(shí)間
hp.innerHTML=oRoot.children.item(2).text; //停留
}
var timeoutid = setTimeout('bar()',1500)
} //每1.5秒重獲一次數(shù)據(jù),}
//-->
</SCRIPT>
<script language='java script' type='text/java script'>
<!--
function MM_callJS(jsStr) { //v2.0
return eval(jsStr)
}
//-->
</script>
<body leftmargin='0' onLoad='MM_callJS('bar()')'>
yy:<span id=xx></span> xx:<span id=yy></span> hp:<span id=hp></span>
login.asp
<?xml version='1.0' encoding='gb2312' ?>
<plan>
<xx>更改就看到</xx>
<yy>更改就看到</yy>
<hp>1112311</hp>
</plan>