【问题标题】:how to run javascript setInterval on server using cpanel如何使用 cpanel 在服务器上运行 javascript setInterval
【发布时间】:2014-02-01 04:18:41
【问题描述】:

我有以下代码,我想使用 cron 作业在我的 cpanel 服务器上运行,但我得到的只是电子邮件的代码,没有数据库正在更新。这是我想使用 cron 作业在 cpanel 服务器上运行的代码。

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
var myVar = setInterval(function(){getElement()},5000);

 function getElement(){

    var links= $("#frametest").contents().find(".dharam_festival_list li .right h3 a");
    var hrefs = [];
    var headlines = [];
    links.each(function(){hrefs.push($(this).attr("href"));});
    links.each(function(){headlines.push($(this).text());});
    for(var i=0;i<hrefs.length;i++)
    {
         $.post('/insert_link/insert_amar.php', {link_address: hrefs[i], amar_heading: headlines[i]},function(data){$("#message").html(data);$("#message").hide();$("#message").fadeIn(1500);});
    }
}


</script>
</head>
<body>
<iframe name="frametest" id="frametest" src="/echo/amar.php" ></iframe>
<div id="message"></div>
</body>
</html> 

如果有其他方法可以做到这一点,请解释一下。提前致谢。

【问题讨论】:

  • 恐怕这是错误的做法。一般来说,JavaScript 在客户端(例如,网络浏览器)上“运行”,而不是在服务器上。出于安全原因,电子邮件客户端会阻止或限制 JavaScript。
  • 有没有什么方法知道...
  • 请大家帮帮我,我需要紧急解决这个问题。
  • 您需要在服务器上而不是在电子邮件客户端中运行您的代码。也许使用标准共享 cPanel 托管帐户最简单的方法是使用 PHP 而不是 JavaScript,然后使用 cron 作业来执行 PHP 脚本。还有许多其他选项,但 PHP 可能已经在您的服务器上配置。
  • 我没有在电子邮件中运行我正在使用 cron 作业运行这个 php 脚本,但我认为在 cron 作业中 setInterval 不起作用。

标签: javascript php cron cpanel


【解决方案1】:

我知道已经8年了,昨天我真的遇到了这个问题,当我来搜索时,我发现这个问题一直处于开放状态,经过更多研究,我确实找到了解决方案。

目前这仅适用于 PHP 开发人员,但同样的概念可以应用于任何其他语言。

Javascript setInterval 是一个客户端脚本,不会在服务器上运行,所以你需要一个服务器脚本来运行一个 cron 脚本。

///解决方案/// (PHP) PHP 有一个 usleep() 函数,它是内置的,不需要安装。该函数以毫秒为单位接收时间作为唯一参数

所以,创建一个函数来调用该函数,或者只是在函数中添加你需要做的事情,最后在关闭函数之前,调用 usleep(givetimeinmilliseconds) 然后在关闭时调用你刚刚创建的函数。示例如下。

如果您需要在 1 秒后更新数据库时间,则 cron 作业仅允许 1 分钟调用作为共享主机中的最短时间。

所以,示例代码

<?php
//Provide what you want  updated from db
function updateTime(){
//code or function to execute immediately
usleep(100000);
updateTime();
}
?>

上面的内容很简单,但是很强大。如果您尝试过但失败了,请告诉我,以便我为您提供工作示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    • 2017-03-24
    相关资源
    最近更新 更多