<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-55  評(píng)論-208  文章-0  trackbacks-0
    今天開始試用ajax最為項(xiàng)目的輔助,本來開始很順利,測(cè)試的內(nèi)容也比較簡(jiǎn)單
    先在一個(gè)jsp中加入ajax的引擎
    //ajax?引擎
    ????<script language="javascript">
    ????var?http_request?
    =?false;
    ????var?currentPos?
    =?null;
    ????function?send_request(url)?
    {//初始化、指定處理函數(shù)、發(fā)送請(qǐng)求的函數(shù)
    ????????http_request?=?false;
    ????????
    //開始初始化XMLHttpRequest對(duì)象
    ????????if(window.XMLHttpRequest)?{?//Mozilla?瀏覽器
    ????????????http_request?=?new?XMLHttpRequest();
    ????????????
    if?(http_request.overrideMimeType)?{//設(shè)置MiME類別
    ????????????????http_request.overrideMimeType('text/xml');
    ????????????}

    ????????}

    ????????
    else?if?(window.ActiveXObject)?{?//?IE瀏覽器
    ????????????try?{
    ????????????????http_request?
    =?new?ActiveXObject("Msxml2.XMLHTTP");
    ????????????}
    ?catch?(e)?{
    ????????????????
    try?{
    ????????????????????http_request?
    =?new?ActiveXObject("Microsoft.XMLHTTP");
    ????????????????}
    ?catch?(e)?{}
    ????????????}

    ????????}

    ????????
    if?(!http_request)?{?//?異常,創(chuàng)建對(duì)象實(shí)例失敗
    ????????????window.alert("不能創(chuàng)建XMLHttpRequest對(duì)象實(shí)例.");
    ????????????
    return?false;
    ????????}

    ????????
    ????????http_request.onreadystatechange?
    =?processRequest;
    ????????
    //?確定發(fā)送請(qǐng)求的方式和URL以及是否同步執(zhí)行下段代碼
    ????????
    ????????http_request.open(
    "POST",?url,?true);
    ????????http_request.setRequestHeader(
    "Content-Type","application/x-www-form-urlencoded");
    ????????????
    ????????http_request.send(
    null);
    ????}

    ????
    //?處理返回信息的函數(shù)
    ????function?processRequest()?{
    ????????
    if?(http_request.readyState?==?4)?{?//?判斷對(duì)象狀態(tài)
    ?????????????
    ????????????
    if?(http_request.status?==?200)?{?//?信息已經(jīng)成功返回,開始處理信息
    ????????????????
    ????????????????????????????????
    ????????????????document.getElementById(currentPos).innerHTML?
    =?http_request.responseText;
    ????????????}
    ?else?{?//頁(yè)面不正常
    ????????????????alert("http_request.status?exception?code:"+http_request.status);
    ????????????}

    ????????}

    ????}
    </script>

    然后在jsp中做個(gè)測(cè)試的select,和用于顯示ajax的回傳數(shù)據(jù)的區(qū)域
    <table?width="200"?border="0"?cellspacing="0"?cellpadding="0">
    ????
    <tr>
    ????????
    <td?height="20"><select?name="ajaxtest"?size="1"?onchange="showRoles('test1');">
    ????????
    <option?selected="selected"?value="test1"?>test1</option>
    ????????
    <option?value="test2"?>test2</option>
    ????????
    <option?value="test3"?>test3</option>
    ????????
    <option?value="test4"?>test4</option>
    ????????
    </select></td>
    ????
    </tr>
    ????
    <tr?style="display:none">
    ????????
    <td?height="20"?id="test1">&nbsp;</td>
    ????
    </tr>
    ?</table>
    再寫一個(gè)js用了作為事件的觸發(fā)
    <script?language="javascript">
    ????????
    ????
    //顯示部門下的崗位
    ????function?showRoles(obj)?{
    ????????document.getElementById(obj).parentNode.style.display?
    =?"";
    ????????document.getElementById(obj).innerHTML?
    =?"loading"
    ????????currentPos?
    =?obj;
    ????????
    ????????send_request(
    "http://localhost/oa-web/app/test/sample2_2.jsp?playPos="+obj);
    ????}
    </script>
    ?再另外寫一個(gè)資源jsp,用于讀取資源回來

    <%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%>
    <meta?http-equiv="Content-Type"?content="text/html;?charset=UTF-8">
    <%?
    String?playPos?
    =?request.getParameter("playPos");
    if("test1".equals(playPos))?out.print("&nbsp;&nbsp;總經(jīng)理皮總<br>&nbsp;&nbsp;副總經(jīng)理老皮");
    else?if("test2".equals(playPos))?out.println("&nbsp;&nbsp;總工程師<br>&nbsp;&nbsp;軟件工程師");
    else?if("test3".equals(playPos))?out.println("&nbsp;&nbsp;總工程師張青與<br>&nbsp;&nbsp;軟件工程師味蕾");
    else?if("test4".equals(playPos))?out.println("&nbsp;&nbsp;總工程師張遲斌<br>&nbsp;&nbsp;軟件工程師章魚");
    %>
    兩個(gè)jsp的編碼都是utf-8的,但是在測(cè)試時(shí)發(fā)現(xiàn)回傳回來的responseText都是亂碼
    去google上找,原來http_request?這個(gè)對(duì)象在request和response都是以gb2312進(jìn)行的,需要更改編碼
    但是可惡的是javascript沒有提供更改http_request?編碼的方法于是在網(wǎng)上找了一個(gè)vbscript的函數(shù)
    <SCRIPT?LANGUAGE="vbScript">?
    ?Function?URLEncoding(vstrIn)?
    ?strReturn?
    =?""?
    ?For?i?
    =?1?To?Len(vstrIn)
    ?ThisChr?
    =?Mid(vStrIn,i,1)
    ?If?Abs(Asc(ThisChr))?
    <?&HFF?Then
    ?strReturn?
    =?strReturn?&?ThisChr?
    ?Else?
    ?innerCode?
    =?Asc(ThisChr)
    ?If?innerCode?
    <?0?Then?
    ?innerCode?
    =?innerCode?+?&H10000
    ?End?If?
    ?Hight8?
    =?(innerCode?And?&HFF00)\?&HFF?
    ?Low8?
    =?innerCode?And?&HFF?
    ?strReturn?
    =?strReturn?&?"%"?&?Hex(Hight8)?&?"%"?&?Hex(Low8)
    ?End?If
    ?Next?
    ?URLEncoding?
    =?strReturn
    ?End?Function?
    </SCRIPT>?
    然后對(duì)回傳回來的http_request?進(jìn)行一下編碼更改
    ????//?處理返回信息的函數(shù)
    ????function?processRequest()?{
    ????????
    if?(http_request.readyState?==?4)?{?//?判斷對(duì)象狀態(tài)
    ?????????????
    ????????????
    if?(http_request.status?==?200)?{?//?信息已經(jīng)成功返回,開始處理信息
    ????????????????
    ????????????????URLEncoding(http_request.responseBody);
    ????????????????
    ????????????????document.getElementById(currentPos).innerHTML?
    =?http_request.responseText;
    ????????????}
    ?else?{?//頁(yè)面不正常
    ????????????????alert("http_request.status?exception?code:"+http_request.status);
    ????????????}

    ????????}

    ????}
    最終終于可以正常顯示中文了
    這兩天和編碼的糾纏有一個(gè)深刻的體會(huì):做中國(guó)人難啊,要是計(jì)算機(jī)是中國(guó)人發(fā)明的多好:)
    注:這種方法只在IE上試驗(yàn)過,別的瀏覽器還沒有試
    posted on 2006-04-13 20:14 rocket 閱讀(1483) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 一级视频在线免费观看| 国产乱辈通伦影片在线播放亚洲| 国产黄在线播放免费观看| 2017亚洲男人天堂一| 亚洲欧洲免费视频| 久久亚洲国产精品五月天婷| 在线观看免费精品国产| 青青在线久青草免费观看| 华人在线精品免费观看| 国产黄片不卡免费| 成人免费网站久久久| 亚洲啪AV永久无码精品放毛片| 亚洲欧洲自拍拍偷综合| 亚洲成色在线综合网站| 日韩一卡2卡3卡4卡新区亚洲| 色www永久免费视频| 国产卡二卡三卡四卡免费网址 | 四虎永久在线精品免费观看视频| 免费人成激情视频在线观看冫 | 亚洲女同成人AⅤ人片在线观看 | 亚洲国产视频久久| 亚洲精品永久www忘忧草| 久久久亚洲精品视频| 亚洲日本va在线视频观看| 国产成人精品日本亚洲专区61 | 亚洲国产成+人+综合| 亚洲国产成人综合| 亚洲国产美女精品久久| 亚洲欧洲校园自拍都市| 亚洲香蕉免费有线视频| 老色鬼久久亚洲AV综合| 亚洲一区影音先锋色资源| 中文字幕亚洲色图| 亚洲成人一级电影| 亚洲人成网站日本片| 久久亚洲精品国产亚洲老地址| 亚洲国产日韩a在线播放| 亚洲AV无码AV男人的天堂不卡| 亚洲欧美自偷自拍另类视| 国产精品亚洲а∨无码播放麻豆| 国产亚洲漂亮白嫩美女在线|