Shoutbox ajax chỉ load khi có nội dung mới ego

15 bài đăng
14.03.2016 / 12:17
thaian2009
Bài đăng: 709
Member

- Bình thường khi dùng shoutbox history kết hợp với ajax nó sẽ luôn tải nội dung. Có thể bạn sẽ khó chịu với nó. Đây là cách chỉ load khi có cmt mới.

+ Bước 1: Tạo 1 file tên là Shoutbox data-> Đối tượng mới -> Shoutbox với lịch sử

Ô 1:

TWIG
  1. <div id="content">{{message_list}}</div>

Ô 2:

TWIG
  1. <div style="padding: 3px 2px; background-color: white; border: 1px solid#efefef; margin-top: 1px; color: #003399; word-wrap: break-word; text-align: left;">{{nick}}: {{message}}</div>

Ô 2 để sao cũng dc, ô 1 chủ yếu bọc {{message_list}} bằng <div id="content"> là được.

Lấy uid sb giữ lại.

+ Bước 2: Quay trở ea nhấn vào [^] tại Shoutbox data [X] [E] [^] để copy file đó.

Sao chép tên tập tin đặt là Shoutbox data 2 xong vào file đó chỉnh sửa shoutbox history

Ô 1:

TWIG
  1. <div id="time">{{message_list}}</div>

Ô 2:

TWIG
  1. {{message_date|date('U')}}

Số tin nhắn để là 1.

+ Bước 3: Vào file làm trang chủ hoặc nơi muốn đặt shoutbox dán code này vào:

TWIG
  1. <script src="/files/1020011/jquery.min.js"></script>
  2. <div style="background: #f5fce2; border: 1px solid #b4e61e; color: #009900; padding: 3px; margin: 1px 1px 1px 1px; text-align: left;">
  3. <form method="post" action="#" id="frm_chat">
  4. Nhập văn bản<br/>
  5. <textarea name="text" id="chat_text"></textarea><br/>
  6. <input type="submit" value="Viết"/>
  7. </form>
  8. </div>
  9. <div id="scontent"></div>
  10.  
  11. <script type="text/javascript">
  12. a=1;
  13. function load_data()
  14. {
  15. $('#scontent').load('/main.php?f=3461643 #content');
  16. }
  17. $('#frm_chat').submit(function(e){
  18. e.preventDefault();
  19. if($('#chat_text').val().length > 0)
  20. {
  21. $.post('main.php?[ses]&id=ch_topic_h&uid=215578&back_url=%2Fmain.php%3Ff%3D3461643',{text:$('#chat_text').val()});
  22. $('#chat_text').val('');
  23. load_data();
  24. }
  25. });
  26. $('#chat_text').keypress(function(e){if((e.keyCode == 10 || e.keyCode == 13) && !e.shiftKey){e.preventDefault();$('#frm_chat').trigger('submit')}})
  27.  
  28. function load(){
  29. $('<div/>').load('/main.php?f=3461645 #time',function(data){
  30. var b=$(data).find('#time').text();
  31. if(a < b)
  32. {
  33. load_data();
  34. a=b;
  35. }
  36. });
  37. }
  38.  
  39.  
  40. $( document ).ready(function(){
  41. load_data();
  42. });
  43. setInterval(function(){load()},1000);
  44. </script>

main.php?[ses]&id=ch_topic_h&uid=215578&back_url=%2Fmain.php%3Ff%3D3461643 thay uid shoutbox ngay chỗ này!.

Demo: http://shoutboxgenerator.wap.m ... 61644

Nguồn: http://cobethoitiet.wap.mu

Đã chỉnh sửa. MrKen (31.07.2017 / 00:54)
14.03.2016 / 12:26
hanhphucao
Bài đăng: 2470
Admin
Admin là người tận tâm và luôn hành xử đúng mực.

Loằng cmn ngoằng :yeah:

14.03.2016 / 12:30
thaian2009
Bài đăng: 709
Member
hanhphucao đã viết

Loằng cmn ngoằng :yeah:

Chỉ là copy nó ra thêm 1 cái để kiểm tra timestamp thôi hi

14.03.2016 / 12:33
hanhphucao
Bài đăng: 2470
Admin
Admin là người tận tâm và luôn hành xử đúng mực.

Nghĩ thì nó đơn giản vậy thôi :)

14.03.2016 / 12:49
thaian2009
Bài đăng: 709
Member
hanhphucao đã viết

Nghĩ thì nó đơn giản vậy thôi :)

ukm hi :))

14.03.2016 / 20:38
saoko
Bài đăng: 1449
Member
MXH Vườn Cảm Xúc

nghi quá

14.03.2016 / 20:51
thaian2009
Bài đăng: 709
Member
saoko đã viết

nghi quá

nghi gì?

14.03.2016 / 20:58
saoko
Bài đăng: 1449
Member
MXH Vườn Cảm Xúc

nó tải lại #time mỗi giây phải ko?

14.03.2016 / 21:03
thaian2009
Bài đăng: 709
Member
saoko đã viết

nó tải lại #time mỗi giây phải ko?

ừ, nhưng có vấn đề gì ở chỗ đó à =))

15.03.2016 / 09:23
saoko
Bài đăng: 1449
Member
MXH Vườn Cảm Xúc

vẫn là tải lại trang mỗi giây, chỉ khác chút là nội dung tải lại mỗi giây là 1 msg (time) chứ ko phải 10 msg, cái này dùng cho shoutbox nặng (có ảnh, thông tin các thứ...) thì rất hay, cái nặng đó gần như ko có liên quan gì