不用AJAX和IFRAME,說說真正意義上的ASP+JS無重新整理技術
來源:互聯網
上載者:User
網上流傳的什麼<<AJAX vs ASP傳統無重新整理>>中的ASP無重新整理,加個IFRAME,弄個JS根本不能稱之為無重新整理.....
一下代碼未區分大小寫,請自行修改!
全靜態無重新整理思路:
<HTML>
<SCRIPT SRC=""></SCRIPT>//當前頁面全域的 無數新調用
<SCRIPT> //一系列JS調用
FUNCTION XX(FUN_NAME,PARAMETER_NAME,PARAMETER_VALUE)//參數自己設定
{
DOCMENT.SCRIPTS[0].SRC='AJAX.ASP?'+PARAMETER_NAME+'='+PARAMETER_VALUE;//參數以此類推
}
</SCRIPT>
<BODY>
//樣本調用一,直接調用ASP
我的資料庫有<SCRIPT SRC="GET_COUNT.ASP?ID=XXX"></SCRIPT>條
//樣本調用二,事件調用AJAX.ASP
我的資料庫有<LABEL ID="COUNT"></LABEL>條<INPUT TYPE="BUTTON" ONCLICK="JAVASCRIPT:XX(COUNT,'ID',DOCUMENT.ALL.ID.VALUE);">
</BODY>
</HTML>
//樣本二中AJAX.ASP代碼
<%
SET RS = CONN.EXECUTE(SQL_STR)
RESPONSE.WRITE "DOCUMENT.GETELEMENTBYID('COUNT').VALUE = '"&RS("COUNT")&"'"
%>
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
以下省略部分HTML代碼,只說明思路
//樣本三 FORM表單ONSUBMIT事件調用AJAX.ASP
<SCRIPT SRC=""></SCRIPT>//這句是必須的
<SCRIPT>
function CHECK()
{
alert('1');
//document.getElementByID("")
document.scripts[0].src = "AJAX.ASP?a="+escape(document.getElementById('T1').value);//這裡給第一個script.src賦值
alert(document.scripts[0].src);//查看測試地址是否正確
return false;
}
</SCRIPT>
<FORM METHOD="POST" ACTION="" ONSUBMIT="return CHECK();" NAME="FORM1">
<INPUT TYPE="TEXT" NAME="T1" ID="T1">
<INPUT TYPE="SUBMIT" VALUE="SUBMIT" >
</FORM>
//樣本三AJAX.ASP代碼
<%
RESPONSE.WRITE "alert('"&request("a")&"');"//////或者寫response.write "document.getelementbyid('id').innerhtml='某些html代碼';"
%>
//////////////////////////////////////////////////////////////////////////////////////////////////
優點:
此種無重新整理方法對比AJAX技術的優勢在於,這種方法所需要編寫的代碼更少,更簡潔,開發速度更快,不用書寫過於龐大複雜的JS判斷,同樣利用JS,但沒有用到DOM XML,同樣有跨平台的優勢,能達到AJAX同樣的使用者體驗效果,可以和AJAX同時使用,不同功能的實現代碼書寫入模式和流程,幾乎相同,更易提高代碼複用性,事實上只需建立2個檔案就可以實現網站各種不同的功能
缺點:
因為此技術完全依靠JS給URL或者COOKIES賦值,然後通過URL和cookies傳參,但URL和cookies參數大小和長度是有所限制的,所以無法像AJAX那樣傳送大量資訊除非仿照AJAX或直接用AJAX完成,不過我相信會找到更好的解決方案