簡體   English   中英

在HTML元素中顯示POST數據

[英]Display POST data in HTML element

我需要一些示例來在HTML DIV元素中顯示POST數據。 像這樣: Beeceptor

我使用PHP和jQuery做一個例子。

它工作正常,但我不知道是否有更好的解決方案而不是使用SESSIONS和interval函數?

POST數據是通過使用外部程序(而不是jQuery本身)生成的。

PHP

session_id('13245');
session_start();

$session_id = session_id();

if($data['payload'] !== null)
{
    $_SESSION['payload'] = $data['payload'];
    $_SESSION['timestamp'] = microtime();
}
else
{
    $_SESSION['payload'] = $_SESSION['payload'];
    $_SESSION['timestamp'] = $_SESSION['timestamp'];
}   

echo json_encode(array('timestamp' => $_SESSION['timestamp'], 'payload' => $_SESSION['payload']));
?>

jQuery的

$(document).ready(function () {
                var oldTimeStamp = 0;
                setInterval(function()
                { 
                    $.ajax({
                      type:"post",
                      url:"post.php",
                      datatype:"json",
                      success:function(data)
                      {
                            var obj = jQuery.parseJSON(data)
                            if(oldTimeStamp != obj.timestamp)
                            {
                                oldTimeStamp = obj.timestamp;
                                $('#displayData').append('timestamp: ' + obj.timestamp);
                                $('#displayData').append(' rawPayload: ' + obj.payload);
                                $('#displayData').append('<br />');
                            }

                      }
                    });
                }, 1000);//time in milliseconds 
            });

任何幫助將不勝感激。

您可以在完成Ajax調用后立即使用“ then()”或“ done()”。 這是示例:

    $.ajax({
        type:"post",
        url:"post.php",
        datatype:"json",
        success:function(data)
            {...}
    }).then(function (data){
        var obj = jQuery.parseJSON(data)
        if(oldTimeStamp != obj.timestamp)
        {
             oldTimeStamp = obj.timestamp;
             $('#displayData').append('timestamp: ' + obj.timestamp);
             $('#displayData').append(' rawPayload: ' + obj.payload);
             $('#displayData').append('<br />');
         }

});

您正在嘗試制作一個實時應用程序,例如聊天和實時可視化。 為了達到這個目的,我建議您使用NodeJs SOCKET.IO編寫

如果使用PHP,它將使服務器的性能比socket.io等JavaScript程序更難。

您的問題:效果很好,但是我不知道是否有更好的解決方案而不是使用SESSIONS和interval函數?

答:絕對不明智的做法是,即使沒有新更新,它也會每秒觸發一次服務器。 假設您同時有100個用戶在線,那么服務器每秒將被調用100次,這實際上是給服務器增加了負載。

示例: https //socket.io/get-started/chat

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM