<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        AJAX初級聊天室代碼

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:52:46
        文檔

        AJAX初級聊天室代碼

        AJAX初級聊天室代碼:很早就想發(fā)出來了,一直以來都沒什么時間,今天偷個空先把代碼發(fā)上面,明天來寫注釋.還是那句話,AJAX是一種應(yīng)用,而不是一個專門的技術(shù),我認(rèn)為做做DEMO要的是速度,要讓看的人好理解,而JS是最基本的WEB語言,相信比起其他的語言來說,要明了很多,所以我還是選擇用J
        推薦度:
        導(dǎo)讀AJAX初級聊天室代碼:很早就想發(fā)出來了,一直以來都沒什么時間,今天偷個空先把代碼發(fā)上面,明天來寫注釋.還是那句話,AJAX是一種應(yīng)用,而不是一個專門的技術(shù),我認(rèn)為做做DEMO要的是速度,要讓看的人好理解,而JS是最基本的WEB語言,相信比起其他的語言來說,要明了很多,所以我還是選擇用J

        很早就想發(fā)出來了,一直以來都沒什么時間,今天偷個空先把代碼發(fā)上面,明天來寫注釋.

        還是那句話,AJAX是一種應(yīng)用,而不是一個專門的技術(shù),我認(rèn)為做做DEMO要的是速度,要讓看的人好理解,而JS是最基本的WEB語言,相信比起其他的語言來說,要明了很多,所以我還是選擇用JS寫前后臺代碼.但并不代表我不會其他的語言,程序關(guān)鍵還是在于自我對實(shí)現(xiàn)的想法,而用什么語言,好比選擇工具一樣,我用菜刀可以做,用瑞士軍刀也可以做,關(guān)鍵是要看在什么場合.

        再就AJAX實(shí)際上首要考慮的是人性化,人機(jī)交互的便利才是他的優(yōu)勢,否則我還是勸你使用FLASH的AS來的更快.

        記住這個詞--認(rèn)知潛意識.千萬不要讓用戶感覺到操作的不適應(yīng),你也一定要想在用戶的前面,也許這就是程序不智能的位置.
        如果你喜歡的話可以繼續(xù)開發(fā)這個東西,更希望你能夠注明一下轉(zhuǎn)載出處,我會覺得非常地高興,并寫出更多更好的東西.

        首頁HTML代碼:請保存為index.html
        程序代碼 程序代碼
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
        <title>Chating Beta_0.3.23</title>
        <link href="images/chatstyle.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="images/chat.js"></script>
        <script type="text/javascript" src="images/display.js"></script>
        </head>
        <body>
        <div id="loadifo"></div>
        <div class="header">Chating Beta_0.3.23</div>
        <div id="outs"><div id="outmain"><div id="chatmain"></div></div></div>
        <div class="in">昵稱:
            <input class="names" name="named" type="text" />
            <span id="inputput" class="inputput" onmouseover="overInput(this)" onmouseout="outInput(this)"><input class="inputs" name="inputs" type="text" title="提交對話
        快捷鍵:Enter或Ctrl + Enter
        清除
        快捷鍵:Ctrl + Delete" /><input class="left" type="button" onmouseover="lrover(this)" value=" " onmouseout="lrout(this)" onclick="preChat();" title="向前一條對話記錄
        快捷鍵:↑" /><input class="right" onmouseover="lrover(this)" type="button" value=" " onmouseout="lrout(this)" onclick="nextChat();" title="向后一條對話記錄
        快捷鍵:↓" />
            <input id="btn" class="btn" type="image" src="images/rest.gif" onmouseover="overBtn(this)" onmouseout="outBtn(this)" onclick="doUsingPost();" title="提交對話
        快捷鍵:Enter或Ctrl + Enter" />
            </span>
            <span id="errors"></span>
        </div>
        </body>
        </html>

        CSS文件:請保存為 images/chatstyle.css
        程序代碼 程序代碼
        body{
            margin: 0px;
            padding: 0px;
            font-size: 9pt;
            background-image: url(JD112.jpg);
            background-position: center center;
        }
        #outmain{
            height: 400px;
            font-size: 9pt;
            overflow-y: scroll;
            overflow-x: hidden;
            SCROLLBAR-ARROW-COLOR:#FF9900;
            SCROLLBAR-FACE-COLOR:#FFF9E1;
            SCROLLBAR-DARKSHADOW-COLOR:#FF9900;
            SCROLLBAR-HIGHLIGHT-COLOR:#FFFFFF;
            SCROLLBAR-3DLIGHT-COLOR:#FF9900;
            SCROLLBAR-SHADOW-COLOR:#FFFFFF;
            SCROLLBAR-TRACK-COLOR:#FFF9E1;
        }
        #chatmain{}
        #outs{
            width: 540px;
            margin-right: auto;
            margin-left: auto;
            padding: 10px;
            margin-top: 10px;
            margin-bottom: 10px;
            background-color: #FFF9E1;
            border: 1px solid #AAA;
            clear: both;
        }
        .in{
            text-align: center;
        }

        .names{
            border: 1px solid #AAA;
            background-color: #FFF9E1;
            width: 80px;
            height: 19px;
            line-height: 19px;
        }
        #loadifo {
            position:absolute;
            top:100px;
            z-index:1;
            right: 10px;
            line-height: 21px;
        }
        .header{
            height: 60px;
            background-color: #000;
            text-align: center;
            color: #FFF;
            font-weight: bold;
            line-height: 60px;
            font-family: Tahoma;
            font-size: 12pt;
            float: left;
            width: 100%;
            margin-bottom: 20px;
            filter: Alpha(Opacity=50);
            opacity: 0.5;
        }
        /*效果*/
        .btn{
            border: 1px solid #AAA;
            position: absolute;
            margin-top: 2px;
        }
        .inputs{
            font-size: 9pt;
            background-image: url(input.png);
            background-repeat: no-repeat;
            width: 295px;
            line-height: 21px;
            height: 21px;
            margin: 0px;
            padding: 0px;
            border: 1px solid #AAA;
        }
        .left,.right{
            background-repeat: no-repeat;
            background-position: center center;
            cursor:pointer;
            border-top-style: none;
            border-right-style: none;
            border-bottom-style: none;
            border-left-style: none;
            background-color: #FFF;
            height: 23px;
            width: 23px;
        }
        .left{
            background-image: url(l1.gif);
        }
        .right{
            background-image: url(r1.gif);
        }

        JS主文件: 請保存為 images/chat.js
        程序代碼 程序代碼
        var nowNum = "m"
        function getId(objId){
            return document.getElementById(objId)
        }
        function getName(objName){
            return document.getElementsByName(objName)[0]
        }
        var xmldoc
        function createxmldoc(){
            if(window.XMLHttpRequest){
                xmldoc = new XMLHttpRequest();
                if(xmldoc.overrideMimeType){
                        xmldoc.overrideMimeType("text/xml");
                }
            }else if(window.ActiveXObject){
                try{
                    xmldoc = new ActiveXObject("Msxml4.XMLHTTP");
                }catch(e){
                    try{
                        xmldoc = new ActiveXObject("Msxml3.XMLHTTP");
                    }catch(e){
                        try{
                            xmldoc = new ActiveXObject("Msxml2.XMLHTTP");
                        }catch(e){
                            try{
                                xmldoc = new ActiveXObject("Microsoft.XMLHTTP");
                            }catch(e){}
                        }
                    }
                }
            }
            if(!xmldoc){
                return false;
            }
        }
        function createQueryString(names){
            var conts = getName(names).value
            if(conts != ""){
                if(conts == "clear"){
                    getId("chatmain").innerHTML = ""
                    clean()
                    focs()
                    return false
                }else{
                    return conts
                }
            }else{
                return false
            }
        }
        function doUsingGet(){
            xmldoc = false
            createxmldoc()
            var url = "chat.asp?clien="+nowNum+"&timeStamp="+new Date().getTime();
            xmldoc.open("GET",url,true);
            xmldoc.onreadystatechange = CheckState;
            xmldoc.setRequestHeader("Content-Type","text/xml;charset=GB2312;");
            xmldoc.send(null);
        }
        function doUsingPost(){
            createxmldoc()
            if(createQueryString("inputs")){
                if(createQueryString("named")){
                    var named = "&named="+createQueryString("named")
                }else{
                    var named = ""    
                }
                if(createQueryString("inputs") == "cls"){
                    nowNum = "m"
                }
                var url = "chat.asp?clien="+nowNum+"&cont="+createQueryString("inputs")+named+"&timeStamp="+new Date().getTime();
                xmldoc.open("GET",url,true);
                xmldoc.onreadystatechange = CheckState;
                xmldoc.setRequestHeader("Content-Type","text/xml;charset=GB2312;");
                xmldoc.send(null);
                getId("errors").innerHTML = ""
                addChat(createQueryString("inputs"));
                clean()
                focs()
            }else{
                getId("loadifo").innerHTML = "請輸入對話內(nèi)容!"    
                focs()
            }
        }
        function CheckState(){
            if(xmldoc.readyState == 1){
                //getId("loadifo").innerHTML = "連接服務(wù)器"
                }
            else if(xmldoc.readyState == 2){
                //getId("loadifo").innerHTML = "開始加載數(shù)據(jù)"
                }
            else if(xmldoc.readyState == 3){
                //getId("loadifo").innerHTML = "正在加載數(shù)據(jù)"
                }
            else if(xmldoc.readyState == 4){
                if(xmldoc.status == 200){
                    results()
                }
                else{
                    getId("loadifo").innerHTML = "錯誤"+xmldoc.status;
                    focs()
                }
            }
        }
        function results(){
            resXml()
        }
        function resXml(){
            var res = xmldoc.responseXML.documentElement;
            var resLen = res.getElementsByTagName("items").length
            if(getTag(res,0,"num") != nowNum){
                //alert(xmldoc.responseXML.xml)
                nowNum = getTag(res,0,"num")
                for(var i=0; i<resLen; i++){
                    var useName = getTag(res,i,"name")
                    var useMag = getTag(res,i,"conts")
                    var useIp = getTag(res,i,"ip")
                    if(nowNum != "0" && useMag != ""){
                        if(useName != ""){
                            var lis = "用戶"+ useName + "說:" + useMag + " ["+ useIp + "]"
                        }else{
                            var lis = "用戶 ["+ useIp + "] 說:" + useMag
                        }
                    }else{
                        var lis = "用戶 ["+ useIp + "] 進(jìn)入聊天室!"
                    }
                    //var newp = document.createElement("p")
                    //newp.innerHTML = lis
                    //getId("chatmain").appendChild(newp)
                    getId("chatmain").innerHTML += lis + "<br />"
                }
                innerSize()
            }
        }
        function getTag(response,i,objTagName){
            try{
                var nodeV = response.getElementsByTagName(objTagName)[i].firstChild.nodeValue;
            }catch(e){
                var nodeV = ""
            }
            return nodeV;
        }
        var overs
        function innerSize(){
            if(overs != 1){
                if(getId("chatmain").offsetHeight < getId("outmain").offsetHeight){
                    getId("chatmain").style.marginTop = getId("outmain").offsetHeight - getId("chatmain").offsetHeight +"px";
                }else{
                    getId("chatmain").scrollIntoView(false)    
                }
            }
        }
        window.onload = function(){
            getId("outs").onmousedown = function(){
                overs = 1
            }
            getId("outs").onmouseout = function(){
                overs = 0
                focs()
            }
            getName("inputs").onkeydown = function(e){
                if(document.all){
                    var Keys = event.keyCode;    
                }else{
                    var Keys = e.which;
                }
                //alert(Keys)
                if(Keys == "38"){
                    preChat()
                }else if(Keys == "40"){
                    nextChat()
                }else if(event.ctrlKey && Keys == "13"){
                    doUsingPost()
                }else if(event.ctrlKey && Keys == "46"){
                    clean()
                }
            }

        }
        setInterval("doUsingGet()",1000)

        JS輔助文件:請保存為 images/display.js
        程序代碼 程序代碼
        function overInput(a){
            getId("btn").style.border = "1px solid #54ce43"
            getId("inputs").style.border = "1px solid #54ce43"
            focs()
        }
        function outInput(a){
            getId("btn").style.border = "1px solid #AAA"
            getId("inputs").style.border = "1px solid #AAA"
            focs()
        }
        function overBtn(a){
            a.src = "images/hover.gif"
        }
        function outBtn(a){
            a.src = "images/rest.gif"
        }
        function lrover(a){
            a.style.backgroundColor = "#EEE"
        }
        function lrout(a){
            a.style.backgroundColor = "#FFF"    
        }
        function focs(){
            getName("inputs").focus();
        }
        function clean(){
            getName("inputs").value = ""
        }
        var chats = new Array()
        var chatStart
        function addChat(strChat){
            if(chats.length > 199){
                chats.shift()
            }
            chats.push(strChat)
            chatStart = chats.length
        }
        function preChat(){
            if(chatStart && chatStart >= 1){
                if(chatStart == 1){
                    getName("inputs").value = chats[0]
                    chatStart = 0.5
                }else{
                    chatStart -= 1
                    getName("inputs").value = chats[chatStart]
                }
            }
            getId("loadifo").innerHTML = chatStart+","+chats.length
        }
        function nextChat(){
            if(chatStart && chatStart < chats.length && chats.length > 1){
                if(chatStart == 0.5){
                    chatStart = 1
                }else if(chatStart == chats.length - 1){
                    chatStart = chats.length - 1
                }else{
                    chatStart += 1
                }
                getName("inputs").value = chats[chatStart]
            }
            getId("loadifo").innerHTML = chatStart+","+chats.length
        }

        主ASP程序文件:請保存為chat.asp
        程序代碼 程序代碼
        <%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%><%
            Session.CodePage = 936
            Response.ContentType = "application/xml"
            Response.Expires = 0
        %><%
        function repla(str){
            str = str.replace(/\&/g, "&");
            str = str.replace(/\>/g, ">");
            str = str.replace(/\</g, "<");
            str = str.replace(/\"/g, """);
            str = str.replace(/\'/g, "'");
            return str;
        }

        var useIp = Request.ServerVariables("REMOTE_ADDR")
        if(!Application("counts")){
            Application("counts") = 0
        }
        if(Request("cont").Count != 0){
            Application.Lock()
                if(Application("counts") < 21){        
                    Application("counts") += 1
                }else if(Application("counts") >= 21){
                    Application("counts") = 1
                }
                var Cnum = Application("counts")
                var Msgs = repla(Server.HTMLEncode(Request("cont")))
                Application("ips" + Cnum) = useIp +""
                Application("msgs" + Cnum) = Msgs +""
                if(Request("named").Count != 0){
                    var names = Request("named")
                }else{
                    var names = ""
                }
                Application("names" + Cnum) = names +""
            Application.UnLock()
        }
        if(Request("cont") == "cls"){
            Application.Contents.RemoveAll()
        }
        %><?xml version="1.0" encoding="gb2312" ?>
        <ppl>
            <num><%=Application("counts")%></num>
            <%
            if(Request("clien") == "m"){
            %>
            <items>
                <ip><%=useIp%></ip>
            </items>
            <%
            }else if(Request("clien") < Application("counts")){
                for(var i=Request("clien"); i<Application("counts"); i++){
                    s = Number(i)+1
                    var useName = Application("names" + s)
                    var useMsg = Application("msgs" + s)
                    var useIp = Application("ips" + s)
            %>
            <items>
                <aaa><%=Request("clien")%> <%=s%></aaa>
                <bbb><%=Application("counts")%></bbb>
                <name><%=useName%></name>
                <conts><%=useMsg%></conts>
                <ip><%=useIp%></ip>
            </items>
            <%
                }
            }else if(Request("clien") > Application("counts")){
                for(var i=Request("clien"); i<21; i++){
                    var useName = Application("names" + i)
                    var useMsg = Application("msgs" + i)
                    var useIp = Application("ips" + i)
            %>
            <items>
                <name><%=useName%></name>
                <conts><%=useMsg%></conts>
                <ip><%=useIp%></ip>
            </items>
            <%
                }
                for(var m=1; m<=Application("counts"); m++){
                    var useNameM = Application("names" + m)
                    var useMsgM = Application("msgs" + m)
                    var useIpM = Application("ips" + m)
            %>
            <items>
                <name><%=useNameM%></name>
                <conts><%=useMsgM%></conts>
                <ip><%=useIpM%></ip>
            </items>
            <%
                }
            }else if(Request("clien") == Application("counts")){

            }
            %>
        </ppl>

        全部程序打包下載: 點(diǎn)擊下載

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        AJAX初級聊天室代碼

        AJAX初級聊天室代碼:很早就想發(fā)出來了,一直以來都沒什么時間,今天偷個空先把代碼發(fā)上面,明天來寫注釋.還是那句話,AJAX是一種應(yīng)用,而不是一個專門的技術(shù),我認(rèn)為做做DEMO要的是速度,要讓看的人好理解,而JS是最基本的WEB語言,相信比起其他的語言來說,要明了很多,所以我還是選擇用J
        推薦度:
        標(biāo)簽: 聊天 聊天室 代碼
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 午夜电影免费观看| 免费视频专区一国产盗摄| 四虎影库久免费视频| 亚洲精品人成网在线播放影院| 99久9在线|免费| 亚洲精品中文字幕无码AV| 最近中文字幕无免费| 亚洲免费中文字幕| 69xx免费观看视频| 国产精品高清视亚洲一区二区| 国产在线观看片a免费观看| 亚洲人精品亚洲人成在线| 成人毛片18女人毛片免费视频未 | 久久亚洲精品中文字幕| 国产中文字幕在线免费观看| 亚洲欧洲∨国产一区二区三区| 毛片在线播放免费观看| 亚洲日韩在线视频| 天天操夜夜操免费视频| 亚洲爆乳大丰满无码专区| 亚洲国产一级在线观看| 久久综合九色综合97免费下载| 久久精品国产亚洲AV电影 | 亚洲AV无码国产一区二区三区| 国产乱子伦精品免费无码专区| 一级做性色a爰片久久毛片免费| 亚洲AV综合色区无码一区爱AV| 1000部国产成人免费视频| 亚洲成a∧人片在线观看无码 | 亚洲精品乱码久久久久久按摩 | 亚洲av午夜福利精品一区人妖| 1000部禁片黄的免费看| 亚洲欧美日韩一区二区三区在线| 国产日产亚洲系列最新| 免费看无码特级毛片| 亚洲大成色www永久网址| 又黄又爽一线毛片免费观看| 日本免费一区二区久久人人澡| 亚洲AV无码一区二区三区人| 亚洲成A人片在线观看无码3D| 一区二区三区在线免费看|