聊天框工作吗?这是正确的方法吗?

发布于 2024-12-10 01:02:49 字数 551 浏览 1 评论 0原文

我想创建一个聊天框,我在互联网上找到了一些片段,但它们看起来太大而无法理解。阅读完所有这些内容后,我有一个基本的方法来处理它:

  1. 在 mysql 中创建包含用户名、消息和时间戳等列的表。
  2. 使用AJAX,让user1将消息发布到数据库中而不刷新。
  3. 让 user2 从数据库中检索消息。

我是 AJAX 和网页设计的初学者,说实话,我只知道使用 AJAX 获取数据和发布数据,但我的问题是:当某些用户发布内容时,如何更新聊天框?

我知道如何在用户单击发送按钮时发布消息,但如何在不单击任何按钮的情况下将其更新给其他用户?

有没有办法检测像 post_event 这样用户将数据发布到数据库中的事件,以便我们可以在用户发布内容时执行一些操作?

据我们所知,JavaScript 中有很多事件,请帮助我处理这些事件。

我越来越多地使用 AJAX,这是一种好的做法还是坏的做法?我的一位朋友说在网站中运行聊天框应用程序的成本比普通网站要高,这是真的吗?如果一个网站有聊天应用程序,即使其流量较少,它的成本是否会更高?

I want to create a chat box and I have found some snippets on internet but they look too big to understand. I have got a basic way to approach it after reading all those stuff:

  1. Create the table in mysql containing columns like username, message and time stamp.
  2. Use AJAX and let user1 post the message into the database without refreshing.
  3. Let user2 retrieve the message from the database.

I am a beginner in AJAX and in webdesigning, to be honest I just know to get data and post data using AJAX but my question is: how do I update chat box when some user posts something?

I know how to post the message when user clicks send button but how to update it to the other user without clicking any button?

Is there a way to detect a event like post_event that user posted data into database so that we can do some action whenever user posts something?

We have many events in JavaScript as far we know, please help me with these.

I have been using AJAX more, is it a good practice or bad one? One of my friend said running a chatbox application in a website costs more than the normal website is it true? If a website has a chat app does it cost more, even though its traffic is less?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

瑾兮 2024-12-17 01:02:49

最简单的方法:

要更新聊天窗口,您必须将请求传递到服务器(使用 Ajax),并将收到的数据发布到某些文本区域(例如 id“TextAreaId”):

<script type="text/javascript">
function updateChat() {
             $.ajax({
                  url: "your_url",
                  type: "POST",
                  success: function (data) {
                       $("#TextAreaId").value = data;              
                  }
              });
}
</script>

服务器端应返回一定数量的消息(最后 20 条)例如)。

要在一段时间内更新您的聊天窗口,您可以使用:

<body onload="setInterval('updateChat()', 1000)">

将一些消息发布到 ajax 到:

<script type="text/javascript">
function postMessage() {
             $.ajax({
                  url: "your_url",
                  type: "POST",
                  data: "message = " + Message + "&user = " + User, // pass message and user name
                  success: function (data) {
                       updateChat();   
                  }
              });
}
</script>

并使用 PHP 或 ASP 在服务器端处理您的 ajax 请求。


我认为最好使用一些文本文件而不是数据库。它减少了服务器负载。

在那里你可以找到一个可以帮助你从服务器获取响应的机制Ajax .Request

在这里您可以找到聊天示例。

这里是我找到的最简单的示例。

Most easier way:

To update your chat window you have to pass request to the server (with Ajax), and post received data to some textarea (with id "TextAreaId" for example):

<script type="text/javascript">
function updateChat() {
             $.ajax({
                  url: "your_url",
                  type: "POST",
                  success: function (data) {
                       $("#TextAreaId").value = data;              
                  }
              });
}
</script>

Server side should return some amount of messages (last 20 for example).

To update your chat window with some period you can use:

<body onload="setInterval('updateChat()', 1000)">

To post some message it ajax to:

<script type="text/javascript">
function postMessage() {
             $.ajax({
                  url: "your_url",
                  type: "POST",
                  data: "message = " + Message + "&user = " + User, // pass message and user name
                  success: function (data) {
                       updateChat();   
                  }
              });
}
</script>

And process your ajax requests on server side with PHP or ASP.


I think is better to use some text file rather than database. It reduces server loading.

There you can find a mechanizm that can help you to get reponse from server Ajax.Request

Here you can find chat example.

Here most easier example that I find.

夢归不見 2024-12-17 01:02:49

你需要一个计时器

    this.ajaxError(function (event, request, settings) {
        //code to set timer
    });

然后你需要一个jquery函数来检索自上次更新以来的所有消息

        getMessages = function () {

        clearTimer();
        var postData = getPostData();
        postData.ChatMessage = '';

        $.post(url, postData, applyData, settings.dataType);
    }

其中PostData是lastupdated、聊天室id等的变量。

You need a timer

    this.ajaxError(function (event, request, settings) {
        //code to set timer
    });

Then you need a jquery function to retrieve all the messages since the last update

        getMessages = function () {

        clearTimer();
        var postData = getPostData();
        postData.ChatMessage = '';

        $.post(url, postData, applyData, settings.dataType);
    }

Where PostData is variables for lastupdated, chatroom id, etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文