【问题标题】:How to listen for an action that happens on another page?如何监听另一个页面上发生的动作?
【发布时间】:2016-06-12 15:06:46
【问题描述】:

不确定我的“条款”是否正确,因为我是新手。

页面 A:
显示新提交问题的页面。

页面 B:
用户可以提交新问题的页面。

当新提交的问题已在页面 B 上提交时,我如何让页面 A“听”或“知道”,以便页面 A 刷新问题。

其次:我必须让服务器参与进来吗?我能以某种方式监听客户端事件吗?

我只能使用 Angular JS 和 JQuery 库。

【问题讨论】:

  • 使用socket.io之类的东西并广播它。
  • 我无法使用其他人制作的其他库。
  • 您需要使用 web sockets 或 ajax 与服务器通信
  • 在给定时间刷新 B 页面? Ajax 请求?
  • 我没有得到反对票?这是针对我的项目的,所以我显然不能付钱给某人...@JorelAmthor,当您说在给定时间刷新时,您的意思是每X分钟刷新一次?这不是我想要做的,或者这是你可以在客户端做的方式?

标签: javascript jquery angularjs


【解决方案1】:

页面 A:

<a id="sendData">Send Data to Page B </a>

var url = http://localhost/yoursite/writeToFile.php
$('a#sendData').click(
               $.ajax({ url: url, type: "POST", data:{test:'test'} })
                .done(function() {
                      $(this).append(' sent!');
               });
)};

页面 B:

<div>Listening to Page A </div>

window.setInterval(function(){
 listenToPage1();
}, 5000);

 function listenToPage1()
{
    var url = http://localhost/yoursite/readFromFile.php
    $.get(url, function(data) { $('div').html(data);   });
}

writeToFile.php

<?php
   $fp = fopen('data.txt', 'a');
   fwrite($fp, $_POST);
   fclose($fp);
?>

readFromFile.php

<?php 
   readfile('data.txt');
?>

假设您使用的是 PHP。否则,您必须将这些脚本转换为您的后端语言。

您的网站结构

www/
  /yousite
   readFromFile.php
   writeToFile.php
   page1.php
   page2.php
   data.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 2018-05-15
    • 2021-11-18
    • 2013-11-10
    相关资源
    最近更新 更多