【问题标题】:calling every second a php function and showing a timer每秒调用一个 php 函数并显示一个计时器
【发布时间】:2016-01-15 13:54:53
【问题描述】:

当有人点击开始、计时器显示以及我每秒调用 php 函数时,我正在尝试处理某些事情。我尝试了一些在线计时器,但我不知道如何调用该函数。

$("#enter_q").click(function(){
$.ajax({
    url: '../page.php',
    type: 'post',
    data: {'enter_q': 'true'},
    success: function(data, status){
        if (data == "ok"){
            $("#timer").innerHTML = '<p>TIMER IS RUNNING</p>';
        }
    }, error: function(xhr, desc, err){
        console.log(xhr);
        conso.log("Details: " + desc + "\nError: " + err);
    }
})

$("#leave_q").click(function(){
$.ajax({
    url: '../page.php',
    type: 'post',
    data: {'leave_q': 'true'},
    success: function(data, status){
        if (data == "ok"){
            $("#timer").innerHTML = '<p>TIMER HAS STOPPED</p>';
        }
    }, error: function(xhr, desc, err){
        console.log(xhr);
        conso.log("Details: " + desc + "\nError: " + err);
    }
})

这只是将文本从开始更改为 ajax 中的计数器。

【问题讨论】:

  • 一些代码会很好......
  • 如果您的请求完成时间超过 1 秒怎么办?
  • 我正在做的是当用户按下开始按钮计时器开始并且每秒一个 php 函数给出一个数字时,当数字达到 10 时计时器停止并显示一条消息。
  • 所以实际上你调用 PHP 函数 from 服务器端的 10 倍???
  • 基本上把函数放在page.php上,在同一个页面调用。但由于 php 是一个服务器脚本,因此它可能需要超过 1 秒的时间。而且你会给服务器每秒钟调用一个函数带来很大的压力。你为什么不使用 javascript 或 jQuery 来代替。简而言之,这是错误的做法,而客户端(jQuery)将是正确的做法。

标签: php jquery ajax counter


【解决方案1】:

在你的情况下,你应该使用 setInterval js-function

var intervalID = setInterval(function() { 'make some operatins here' }, 1000)

如果你想停止计时器,只需调用

clearInterval(intervalID);

【讨论】:

  • 使用setTimeout 的自调用函数会好得多...在每个请求完成时调用它。像这样使用setInterval 的短时间间隔会有很多请求重叠
猜你喜欢
  • 1970-01-01
  • 2019-08-29
  • 2014-12-24
  • 1970-01-01
  • 2021-08-07
  • 1970-01-01
  • 2015-06-26
  • 2021-12-03
  • 2022-01-13
相关资源
最近更新 更多