影音先锋男人资源av站_狠狠色综合激情丁香五月_爱爱爱爱看视频_在线播放免费人成视频在线观看_少妇人妻综合久久中文字幕_国产午夜无码精品免费看_久久久久久夜精品精品免费啦_男人女人午夜视频免费_日本xxxx裸体xxxx_丰满人妻熟妇乱又仑精品

電子科大論壇-非清水河畔

 找回密碼
 注冊(開放注冊)
查看: 6578|回復(fù): 0
打印 上一主題 下一主題

[應(yīng)用技術(shù)] 快速、簡便的使用AJAX技術(shù)操作的三部曲

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2007-11-21 10:11:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
其實AJAX并不復(fù)雜,自從AJAX技術(shù)出來后,天花亂墜的框架紛紛出臺,搞得技術(shù)開發(fā)人員無從下手,baidu google里也有很多例子,大都是非常復(fù)雜。   其實就web開發(fā)而言,AJAX技術(shù)只是一個配合,完全沒有必要本末倒置,是一種頁面優(yōu)化的技術(shù),也就是說,如何去優(yōu)化我們的web頁面才是AJAX的重頭戲。下面我舉個很簡單的例子,可以滿足大部分的業(yè)務(wù)需求。(當(dāng)然,如果是很專業(yè)的頁面要求,可以去參考那些復(fù)雜的框架)
  第一步:
  寫一個后臺的“接口”,這個可以用任何語言來實現(xiàn),只要能返回http報文就可以了,我這里以webwork后臺代碼舉個例子
public String hotWeek() throws Exception{        HttpServletResponse response = ServletActionContext.getResponse();        response.setContentType("text/xml; charset=gb2312");        PrintWriter out = response.getWriter();        StringBuffer insertHotHtml = new StringBuffer();        insertHotHtml.append(" ");            insertHotHtml.append("");            insertHotHtml.append("");            insertHotHtml.append("");        insertHotHtml.append("
");        out.print(insertHotHtml.toString());  //返回一個有表格的HTTP報文        return null;    }  不用java的朋友根本不用管這些,只要記住,能返回一個HTTP報文,比如一個靜態(tài)網(wǎng)頁也可以。
  第二步 :
  在頁面里加入下面這段javascript代碼
var xmlHttp;function createXMLHttpRequest(){    if (window.ActiveXObject){        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");    }    else if (window.XMLHttpRequest){        xmlHttp = new XMLHttpRequest();    }}function startAjaxRequest(method,async,actionUrl,data, invokeMethod){    createXMLHttpRequest();    xmlHttp.open(method, actionUrl, async);    xmlHttp.onreadystatechange = handleStateChange;    xmlHttp.send(data);    function handleStateChange(){        if(xmlHttp.readyState == 4){            if(xmlHttp.status == 200){                var nodeId = xmlHttp.responseText;                if (nodeId=='noPermission'){                    alert('你沒有權(quán)限訪問此操作!');                }else if( (falseIndex = nodeId.indexOf("false||"))!= -1 ){                   alert('操作失敗,可能的原因為:' + nodeId.substring(falseIndex+7, nodeId.length) + "!");                }else if(nodeId=='false'){                    alert('操作失敗,請和管理員聯(lián)系!');                }else ...{                    if (invokeMethod == undefined){                        getResult(nodeId);                    } else {                        invokeMethod(nodeId);                    }                }            }        }    }}
  我們要用的就是startAjaxRequest(method,async,actionUrl,data, invokeMethod) 這個方法,具體實現(xiàn),也不可以不用理會,對于IE和firefox都可以兼容,method 要么是GET,要么是POST,async我們一般都設(shè)置為true就可以了,data用來傳數(shù)據(jù)給后臺,invokeMethod是指后臺返回數(shù)據(jù)后,前臺自動調(diào)用什么方法,如果為空,那么就默認(rèn)調(diào)用 invokeMethod(nodeId)這個方法。
$(document).ready(function(){            var acti;            $('body').html("頁面加載中...");            startAjaxRequest("GET",true,actionUrl,'');    });
  這里我是用jQuery的,一個很好用的javascript框架。
  "./provider!hotWeek.action" 就是我們獲取HTTP報文的地址,大家完全可以用 比如 myTable.asp myTable.php只要返回的HTTP報文是符合XML規(guī)則的HTML語言就可以了。
  第三步:
  后臺返回后的處理方法
function getResult(nodeId){        $('body').html(nodeId);    }
  總結(jié)起來,其實只要 startAjaxRequest("GET",true,actionUrl,'') 這么一個方法就可以去滿足大部分AJAX的業(yè)務(wù)需求了,根本沒有必要弄得那么復(fù)雜。
來原:www
您需要登錄后才可以回帖 登錄 | 注冊(開放注冊)

本版積分規(guī)則

手機訪問本頁請
掃描左邊二維碼
本網(wǎng)站聲明
本網(wǎng)站所有內(nèi)容為網(wǎng)友上傳,若存在版權(quán)問題或是相關(guān)責(zé)任請聯(lián)系站長!
站長電話:0898-66661599    站長聯(lián)系QQ:12726567   
站長微信:hainanok
請掃描右邊二維碼
www.myujob.com

小黑屋|手機版|Archiver|電子科大論壇-非清水河畔 ( 瓊ICP備10001196號-2 )

GMT+8, 2025-11-6 18:02 , Processed in 0.059252 second(s), 14 queries .

Powered by 校園招聘信息

© 2001-2020 電子科大論壇-非清水河畔校園招聘

快速回復(fù) 返回頂部 返回列表