ไปศึกษา ajax realtime ดูทำเป็นตัวอย่าง แต่ error ทุกรอบเลยครับ แนะนำหน่อยครับ
ระบบ Realtime ที่นิยมมี
1.Short Polling: setInterval, setTimeout
Code (JavaScript)
$('document').ready(function () {
setInterval(function () {getRealData()}, 1000); // request ทุกช่วงเวลาตามที่กำหนด ถ้าต้องรอให้การทำงานเสร็จก่อนใช้ setTimeout
});
function getRealData() {
$.ajax({
url: "target.php",
type: "POST",
data: {
name: name
},
cache: false,
success: function () {
// result
}
}
}
2.Long Polling
https://code-boxx.com/ajax-long-polling-php-mysql/
https://github.com/panique/php-long-polling
3.Websocket
http://socketo.me/docs/hello-world
4.Server-Sent Event (SSE)
Code (PHP)
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
while (true) {
$data = [
'name' => 'LakornWorld'
]
echo "event: sse\n";
echo "data: " . json_encode($data) . "\n\n";
echo str_pad('', 4096) . "\n";
ob_flush();
flush();
sleep(1);
if (connection_aborted()) {
break;
}
}
ob_end_flush();
https://github.com/hhxsv5/php-sse
ประวัติการแก้ไข 2021-01-21 21:00:02
Date :
2021-01-21 20:59:08
By :
lakornworld
ขอบคุณมากครับ @ละครชีวิต
ประวัติการแก้ไข 2021-01-25 11:14:49 2021-01-25 11:20:28
Date :
2021-01-25 11:12:34
By :
chawa-2011
Code (JavaScript)
let param = {};
param.Hi = "Aha";
data: JSON.stringify(param)
Date :
2021-01-25 11:26:48
By :
ผ่านมา
ก็เหมือนฯกับ แอบดูน้องเมียอาบน้ำ นั่นแหละ
Ajax_Realtime.php?Hi=Aha
Date :
2021-01-25 11:41:57
By :
ผ่านมา
ปรกติถ้าไม่ระบุ type: 'GET'
แต่ก็ไม่เสมอไปนะ เช่น ยังไม่มีผัว/แต่อาจจะมีหลบฯซ่อนฯ มันเป็นไปได้หมดแหล่ะ
1. + 2. Code (JavaScript)
ขึ้นอยู่กับว่าใช้ line 53/54
// insert line 52 type: 'GET',
// line 53 dashboardcms.php?rev=1,
// line 54 //data: {rev:1}, // หรือ JSON.stringify({rev:1}),
ปล. มันไม่มีหรอก ของคนอื่น มันคือของทุกฯคนต่างหากเล่า
Date :
2021-01-25 12:24:07
By :
ผ่านมา
ใช่ มันต้องลองดู ลองได้หมดแหละ
แต่แต่แต่ ลองวิ่งตัดหน้ารถสิบล้อดูซิ แบบนี้ไม่ควรลอง
Date :
2021-01-25 13:35:03
By :
ผ่านมา
อย่าส่งออก document ก่อนการส่งออก document header;
ตัวอย่าง
Code (PHP)
<?php
if(!isset($_GET['xxxxx'])){
die('zzzzzzzzz');
}
header('con....................');
?>message document
Date :
2021-01-25 13:45:32
By :
Chaidhanan
@Tor
ผมเข้าใจที่คุณเข้าใจ/ไม่เข้าใจ เดี๋ยวมันก็ได้เองแหละ
วิธีการเรียนรู้และวิธีการทำความเข้าใจ แต่ละคนไม่เหมือนกัน
ง่ายเรายากของเขา
ยากของเขาง่ายของเรา
นานาจิตตัง
ผมมีข้อแนะนำว่า คุณควรจะเข้าใจบ้างในสิ่งเหล่านี้บ้าง (เพื่อเขียนเวป)
0. ละเอียดรอบคอบ อ่านซ้ำอีกหลายฯรอบ
1. Comment การเล่นกับ Comment คือจุดแข็งเลยนะ
2. โครงสร้างหลัก HTML5
3. JavaScript/Jquery
--- เท่าที่เห็น คำสั่ง setInterval(callbackFunction, interval), $.ajax();
4. กล้าลองให้มากกว่านี้
จะว่าไปคำว่า Realtime นี่มันกว้างเหมือนกัน ขึ้นอยู่กับลักษณะงานนั้นฯด้วย
สิ่งที่คุณต้องการจริงฯก็มีแค่นี้แหละ Update ทั้งหน้า (1 div)
Code (JavaScript)
<meta http-equiv="refresh" content="5"; ,URL=http://domain.com/Page_xxx">
ปล. ขอให้โชคดีครับ
Date :
2021-01-25 19:11:28
By :
ผ่านมา
ตัวอย่าง ajax ฝั่ง client
Code (JavaScript)
setInterval( ()={
$.ajax({ url: 'https://abcdef.com', data:{rev: 'xxxxxx'}, type:'get',
error: (e,jh)=>{ .... },
success: r=>{
$('div').html(r);
}
});
}, 5000);
ฝั่ง server
Code (PHP)
<?php
if(!isset($_GET['rev']) || $_GET['rev'] !== 'abcdef' ) {
die ('ERROR');
}
?><!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
......
Date :
2021-01-25 21:05:49
By :
Chaidhanan
Quote: setInterval( ()={
$.ajax({ url: 'https://abcdef.com', data:{rev: 'xxxxxx'}, type:'get',
error: (e,jh)=>{ .... },
success: r=>{
$('div').html(r);
}
});
}, 5000);
ท่าน Chaidhanan ยังมีลูกเล่นแพรวพราวเหมือนเดิมนะครับ
แก้ไขเป็น
Code (JavaScript)
setInterval( () => {
$.ajax({ url: 'https://abcdef.com', data:{rev: 'xxxxxx'}, type:'get',
error: (e,jh)=>{ .... },
success: r=>{
$('div').html(r);
}
});
}, 5000);
ปล. () => มันก็คือ Lamda/Delegate บน C# นั่นแหละ
Date :
2021-01-26 08:57:05
By :
ผ่านมา
xxxx คือค่าที่คุณใส่เอง ไม่มีใครรู้หรอกครับ จากตัวอย่างที่คุณลง คือ 1
แล้ว ไอ้ 1 นี่คุณเอามาจากไหนล่ะ ต้องตอบเองล่ะมั้งครับ
ที่ลงตัวอย่างอย่างให้เป็นแค่ ตัวอย่างการเรียกใช้งาน ไม่รวมถีง value ต่างๆ ที่คุณต้องรู้เองครับ
Date :
2021-01-28 14:35:23
By :
Chaidhanan
คุณอังคาร กัลยาณพงค์ เคยบอกผม (น้อยคนนักที่จะสำผัสท่านได้)
--- อยู่ใต้ต้นลั่นทม ท่านบอกว่า ลั่นทม แปลจากหัวใจ ความหมายคือ นอบน้อม
ความคิดของมนุษย์ทุกฯคน มันก็เหมือนเด็กเด็ก
มันก็เหมือนแม่คนหนึ่งสอนลูกสาวอายุ 12 ปี ที่บอกแม่ว่า หนูจะไปเที่ยวกับเพื่อนฯ นะ
คนเป็นแม่บอกว่า : ต้องระมัดระวังนะลูก พกถุงยางให้เต็มกระเป๋า
ลูก : หนูอายุพึ่งจะ 12 ปีเองนะค่ะ แม่
คนเป็นแม่บอกว่า : กู อายุ 24 ปี
Date :
2021-01-28 15:00:11
By :
ผ่านมา
ทำไมขยันโพสท์ภาพจังเลยครับ?
โพสต์เป็นโค้ดมันยากกว่าเหรอ?
Date :
2021-01-29 13:44:28
By :
mr.v
โพสต์เป็นตัวหนังสือ ก๊อปวาง
ข้อดี
สำหรับเวลาเปิดบนมือถือ เน็ตน้อยๆ มันไม่เปลือง
server เก็บรูปจะล่มก็ไม่แคร์เพราะไม่ได้ใช้ แต่ถ้าใช้ถ้ามันล่มก็ดูอะไรไม่ได้
คนจะแก้ไขก๊อปไปทดสอบได้เลยไม่ต้องเขียนใหม่
การค้นหาก็จะดีด้วย เพราะบางคน ค้นเข้ามาจากพวกโค้ด ถ้ามันตรงกันก็จะเจอง่าย เป็นประโยชน์ต่อคนภายหลัง
Date :
2021-01-29 22:00:29
By :
mr.v
[color=red]@Tor [/color ]เล่าให้ฟัง
ฝรั่งมากับภรรยา พูดคำว่า อมก๋อย (อ.หนึ่งในจังหวัดเชียงใหม่)
พม่าสาวคนที่ 1 พูดตัวเลข แปด (พม่าออกเสียง ป เป็น ต เสมอ)
พม่าสาวคนที่ 2 พูดตัวเลข สี่ (พม่าออกเสียง ไม่เอก ไม่ได้)
นึกภาพเสียงจิ้งหรีดร้องระงม...
ผมว่าคุณเป็น ฝรั่งและพม่า ผสมกัน ว่ามั้ย
Date :
2021-01-30 11:18:21
By :
ผ่านมา
Code (JavaScript)
ล่องลอยไปถึงอีกกระทู้หนึ่ง #???
var objJIMI = $("#youTable").datatable({});
objJIMI.on('click', '.fucker', function () { //$('#youTable tbody').on('click', '.fucker', function () {
let dr = objJIMI.row($(this).parents('tr'));
console.log(dr.data());
console.log(dr.index());
});
Date :
2021-01-30 11:30:21
By :
ผ่านมา
พอดีดู Vue 3 (จริงฯอยากดู ฮี มากกว่า) สรุปออกมาได้แบบนี้ (แค่แอบชำเลือง มอง นม)
Code (JavaScript)
<div id="vue-app">
<h1>Hi my name is {{name}}</h1>
<h1>Now, I'm President Of USA</h1><br />
<p class="tx-gray-900 wd-300">{{message}}</p>
<br />
<button type="button" id="btnHowAreYou" v-on:click="sendMessage()">I'm Fucker</button>
</div>
<div class="mt-4" id="Itemlist">
<table class="table">
<tr>
<th>Item</th>
<th>Year</th>
</tr>
<tr v-for="item in items">
<td>{{item.displayName}}</td>
<td>{{item.year}}</td>
</tr>
</table>
</div>
@section Scripts {
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
el: "#vue-app",
data: {
name: "Joe Biden",
age: 6996,
status: true,
message: "Hi How are you to day.\r\nAmet duis do nisi duis veniam non est eiusmod tempor incididunt tempor dolor ipsum in qui sit.",
items: [],
},
methods: {
sendMessage: function () {
return this.message = "I'm Fucking."
},
},
});
var ItemsVue = new Vue({
el: '#Itemlist',
data: {
items: []
},
mounted: function () {
const self = this;
$.ajax({
url: '/api/Test/items',
method: 'GET',
success: function (data) {
self.items = data;//JSON.parse(data);
},
error: function (error) {
console.log(error);
}
});
}
});
</script>
}
Date :
2021-01-30 11:47:23
By :
ผ่านมา
Load balance : Server 04