【问题标题】:Making a forum without manual page refresh (without AJAX or Javascript)制作没有手动页面刷新的论坛(没有 AJAX 或 Javascript)
【发布时间】:2011-08-30 13:29:09
【问题描述】:

对于一个学校项目,我正在创建一个必须同步工作的论坛,因为它的目标是在安排的时间内进行实时讨论。因此,每时每刻都能看到新的更新,这一点很重要。

目前我的论坛看起来不错,但有一个大问题。登录后,我可以立即看到我的帖子。但是当其他人在两者之间发布一些东西时,我只能在我发布新的反应或进行手动页面刷新时才能看到它。当然这很烦人。

我知道可以使用 AJAX 和/或 Javascript 来解决这个问题,但问题是我的论坛必须在没有这两件事的情况下工作。所以我一直在寻找解决方案,但没有找到我想要的。

我发现的每个答案都使用 Javasript 或 Ajax。当我在这里写我的问题时,我创建了另一个看起来相同的类似问题(“在不重新加载页面且不使用 Ajax 的情况下刷新 Div、Table 或 TR”),但是当我查看答案时,我看到了 Javasript。所以它仍然不是我想要的。

我还尝试将用于查看更新的代码放在我代码的其他位置。但即使那样它也不起作用。希望有人能帮我把它做好。

克尔斯滕

Ps:如果我的英语有一些小错误,请见谅

这是我的代码示例

include('jeugdhulp_2-0_connectie.php');
include('klasses/Reacties.class.php');  

$reactie = new Reacties();
$stellingen = $reactie->ToonStelling();

//$recenteactiviteiten = $reactie->ToonRecenteReacties();

if(!empty($_POST['tekst_gebruiker']))
{
    $reactie->Reactie = $_POST['tekst_gebruiker'];
    $reactie->ID = $_SESSION["gebruikersid"];       
    try
    {
        $reactie->Save();
        //$reactie->ToonStelling();
        //$feedback = "Uw gegevens werden bewaard!";
    }
    catch(Exception $e)
    {
        $feedback = $e->getMessage();
    }
}
else
{
    $feedback = "";
}
//altijd recente reacties laten zien
$recenteactiviteiten = $reactie->ToonRecenteReacties();

【问题讨论】:

  • 您需要 JS 或其他一些客户端技术来实现此行为。 Flash 是另一种可能性。

标签: php forum


【解决方案1】:

这在某种程度上类似于 Facebook 的做法,将数据推送给用户,而不是等待用户重新加载页面。我有一些非常有趣的资源等着你去发现,也许你会在那里找到一些有意义的东西:)

您以前听说过Comet programming 吗?它可以帮助您“在没有浏览器明确请求的情况下”将数据推送给用户。

Ape project 也是一个有用的地方供您查看。它促进了实时网络的 Ajax Push,这正是您正在寻找的。​​p>

很高兴发现并记住,如果没有 Javascript 和 AJAX,您将无法使您的论坛成为实时

【讨论】:

  • 嘿BeingSimple,它确实类似于Facebook 的做法。我一定会发现你的消息来源。我不确定,这就是我在这个网站上提出问题的原因,但现在我知道为这项任务设置另一个项目可能会更好。
  • 是的,如果您认真查看上面的链接,我相信您很快就会解决它;) 只是为了让您知道如果没有 Javascript 和 AJAX,您将无法使您的网站实时.希望我的链接肯定会为您的工作推荐一些东西(如果有帮助,请为我打勾)。
  • 您仍然需要某种形式的 Javascript。使用 Javascript,您可以做各种各样的事情,但如果没有您,则仅限于在用户重新加载页面时进行更改。
【解决方案2】:

您可以使用meta refresh(最终在一帧内),但它不是实时的; meta-refresh 使用计时器自动调用页面

编辑:使用 ajax 也不会是实时的,除非您通过与服务器建立的连接“监听”服务器推送的更新;否则你会使用计时器,仍然

【讨论】:

  • 这将是对资源的真正浪费 :) 想想如果每 10 秒有 100 人访问并重新加载页面。
  • 抱歉,我以为你们说的是使用元刷新加载整个页面,如果您使用的是 iframe,那当然很好,虽然我很糟糕,但不知何故不是与这里的问题有很大关系。而且,你的话是侮辱性的,所以我会标记它。你只需要告诉我哪里出了问题,我很乐意再看一遍。再次投票。
【解决方案3】:

如果您讨厌 javascript,请使用 <iframe>meta refresh

【讨论】:

  • 这将是对资源的真正浪费 :) 想想如果每 10 秒有 100 人访问并重新加载页面。
  • 每秒10个请求并不重,meta refresh请求和ajax请求对服务器负载没有区别。
【解决方案4】:

不使用 Ajax 和 Javascript HTML 是静态的,只会在页面重新加载时显示新数据。所以简而言之,你不能

【讨论】:

  • 好的。谢谢你的反应。我之前也想过,但也许我错了,所以我在这里发布了这个问题。是我的 php 老师对我说:“它必须在没有 AJAX 和 Javascript 的情况下同步工作”。现在我将寻找其他解决方案:)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-08
  • 2012-04-09
  • 1970-01-01
  • 2018-06-14
  • 1970-01-01
  • 2013-08-27
相关资源
最近更新 更多