1. Langkah-Langkah Praktikum
a. Membuat direktori baru dan menambahkan file baru kedalamnya, lalu
menambahkan kode baru seperti dengan yang sudah diberikan.
b. Membuat direktori baru bernama “chat” dan menambahkan file baru serta
mengetik kode seperti dengan yang sudah diberikan.
2. Pembahasan Tugas
a. Membuat direktori baru dan menambahkan file baru kedalamnya.
<?php
sleep(1);
$name = $_POST["name"];
echo "Hello $name!";
?>
Kode greet.php
Fungsi dari then pada baris ke 13 dan 14 yaitu untuk mengganti variabel
message.textContent menjadi sesuai dengan respon dari fungsi fetch dari file php
sebelumnya. Text yang awalnya bertuliskan Please Wait… berubah menjadi Hello Beta!
setelah satu detik dikarenakan pada file php ada fungsi sleep yang berjalan ketika kode
dikompilasi. Cara bekerjanya yaitu merubah respon dari php tersebut menjadi sebuah
text dan memasukkannya kedalam variabel data, lalu isi variabel message.textContent
diubah sesuai dengan isi variabel data.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>AJAX Chat App</title>
</head>
<body>
<textarea id="chat" rows="20" cols="31"></textarea><br>
<label>
Message: <input type="text" id="message">
</label>
<script src="chat.js"></script>
</body>
</html>
Kode pada index.html
<?php
$message = $_POST['text'];
file_put_contents('chat.txt', "$message\n", FILE_APPEND);
Kode chat-write.php
<?php
echo file_get_contents('chat.txt');
Kode chat-read.php
Dikarenakan 2 tab browser yang kita buka menuju ke alamat yang sama, yaitu
http://localhost/chat, maka pesan yang ditampilkan dari 2 tab tersebut sama karena
menerima informasi dari web server yang sama.
Fungsi dari setTimeout(readChat, 1000); adalah untuk membatasi pesan yang dapat
dikirim dalam jangka waktu tertentu, dalam hal ini 1000ms atau 1 detik, jika kita
mengaturnya menjadi setTimeout(readChat, 100); maka kita dapat melakukan spam
pesan dengan lebih mudah dikarenakan jangka waktu antara pesan yang dapat dikirim
menjadi jauh lebih cepat.
Jika kita menghapus bagian FILE APPEND, maka web hanya menampilkan pesan terbaru
yang dikirim. Ini dikarenakan fungsi dari FILE APPEND sendiri adalah menggabungkan
textyang sudah ada sebelumnya dengan text baru yang akan ditampilkan sehingga kita
bisa melihat seluruh riwayat pesan yang sudah dikirim.