Ponomarenko.Oleg 6 jaren geleden
bovenliggende
commit
127942493b
2 gewijzigde bestanden met toevoegingen van 102 en 0 verwijderingen
  1. 25 0
      hw10chat/index.html
  2. 77 0
      hw10chat/main.js

+ 25 - 0
hw10chat/index.html

@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+	<meta charset="UTF-8">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="style.css">
+	<title>Table for JS</title>
+</head>
+<body>
+        
+    <h1 style="color:forestgreen; margin-top:40px; margin-left:260px;">CHAT</h1>
+    <br>
+    <input style=" margin-left:120px;" type="nick" id = "nick" placeholder="Nick">
+    <input type="text" id = "message" placeholder="Message">
+    <input type="submit" value="send" id = "button">
+    <div id= "chat" style="padding-top:30px; padding-left: 20px; margin-top:40px; width: 600px;">  </div>
+  
+
+	
+	<script src="main.js"></script>
+	
+	</script>
+</body>
+</html>
+

+ 77 - 0
hw10chat/main.js

@@ -0,0 +1,77 @@
+
+var nick=document.getElementById('nick')
+var message=document.getElementById('message')
+var button=document.getElementById('button')
+var chat=document.getElementById('chat')
+
+button.onclick=function(elem){
+    function jsonPost(url, data)
+    {
+        return new Promise((resolve, reject) => {
+            var newRequest = new XMLHttpRequest();   
+            newRequest.onerror = () => reject(new Error('jsonPost failed'))
+            //x.setRequestHeader('Content-Type', 'application/json');
+            newRequest.open("POST", url, true);
+            newRequest.send(JSON.stringify(data))
+
+            newRequest.onreadystatechange = () => {
+                if (newRequest.readyState == XMLHttpRequest.DONE && newRequest.status == 200){
+                    resolve(JSON.parse(newRequest.responseText))
+                }
+                else if (newRequest.status != 200){
+                    reject(new Error('status is not 200'))
+                }
+            }
+        })
+    }
+    jsonPost("http://students.a-level.com.ua:10012", {
+      func:"addMessage",
+      nick:nick.value,
+      message:message.value,
+    })
+
+
+
+    var mess = function(){
+    var messages = {};
+    messages = jsonPost("http://students.a-level.com.ua:10012", {
+        func: "getMessages",
+        messageid: messages.length
+    }).then(a => {
+        console.log(a)
+        for (q = 0; q < a.data.length; q++) {
+            var chatik = document.getElementById("chat")
+            var abzac = document.createElement("p")
+            
+            abzac.innerHTML = a.data[q].nick + "----" + a.data[q].message
+            // abzac.style.backgroundColor = "green";
+            chatik.appendChild(abzac)
+            
+
+        }
+    var nextId = a.nextMessageId
+        console.log(nextId + "a111")
+        console.log(a.data.length)
+        setInterval(function() {
+            var messages = jsonPost("http://students.a-level.com.ua:10012", {
+                func: "getMessages",
+                messageid: nextId
+            }).then(newFunc => {
+                for (q = a.data.length; q < newFunc.data.length; q++) {
+                    var chatik = document.getElementById("chat")
+                    var abzac = document.createElement("p")
+                    abzac.innerHTML = newFunc.data[q].nick + "----" + newFunc.data[q].message
+                    chatik.appendChild(abzac)
+
+                }
+                nextId = newFunc.nextMessageId
+                console.log(nextId + "a222")
+                console.log(newFunc.data.length)
+            })
+
+
+        }, 2000);
+    })
+}
+mess()
+}