【问题标题】:it is possible to use ajax, jquery page with cron?可以使用 ajax、jquery 页面和 cron 吗?
【发布时间】:2012-10-17 03:16:33
【问题描述】:

我的页面所做的是:

  1. 从不同的服务器下载数组(first.php)
  2. php 脚本解析值
  3. 解析值通过 ajax 调用发送
  4. 在下一个(ajax 调用)页面 (second.php) 上有一些 mysql 查询
  5. 如果值满足条件,则将值写入数据库

.. 所以,当我运行我的 first.php.. 它加载 second.php,一切都很好.. 但是我想知道是否可以让它通过 cron 制作?

如果没有,我该怎么办? 谢谢。

【问题讨论】:

    标签: php javascript mysql ajax cron


    【解决方案1】:

    在这方面你需要了解一些事情。

    首先,PHP 可以作为web server modulestandalone executable 运行。当您将其作为 Web 服务器模块运行时,您可以从浏览器中打开它,所有相关的 Web 技术 (html/css/js) 等都会被解析并协同工作。

    当您使用 cron 从命令行运行它时,例如 /usr/bin/php mywebpage.php 那么 php 可执行文件不会解析/理解其他 Web 技术,因此您的页面将失败。

    有两种解决方法:

    1. 只重写那些支持 web 的部分,以便 ajax/js 的东西得到 由 PHP 处理。基本上经验法则是,如果你是 运行 CLI php 脚本,它应该只包含核心 PHP。这是首选方式。您需要将 ajax 调用移动到同一个文件中,并像任何常规程序一样使其成为单个执行流程。

    2. 如果由于某种原因您无法执行上述操作,您可以尝试以下操作: /path/to/browser http://mysite/mywebpage.php。你正在做的是,你正在运行一个浏览器可执行文件,然后调用网页 URL。这样页面就在浏览器的环境中执行,它能够解析和理解 ajax/js 调用。

    【讨论】:

    • 哦,我明白了。那么,这不可能吗?
    • @user1666761:我刚刚在回答中添加了几个解决方法
    【解决方案2】:

    是的,您可以通过以下方式创建 cron 作业。

    1) 从不同的服务器下载一个数组(first.php)

    2) php 脚本解析 first.php 中的值

    3) 通过 include_once 包含第二个文件 second.php,它执行 mysql 查询

    4) 如果一切正确,将它们插入数据库。

    【讨论】:

    • 我应该把我的javascript(谷歌地理编码器)放在哪里。因此,我需要 ajax ..
    • 在将它们发送到数据库之前,您可以使用 jquery 对第三个 php 页面进行 ajax 调用并传递位置以获取坐标。收到坐标后,您可以在第三个脚本本身中将值保存在 mysql 中。
    • 对不起,我认为您不能将 jquery 请求与 cron 作业一起使用。也许你可以使用 $response = file_get_contents('maps.googleapis.com/maps/api/geocode/…)
    • 抱歉,我认为即使这样也无济于事。
    【解决方案3】:

    听起来您需要一个独立的 JavaScript shell。在以下位置列出了一个数字:

    https://developer.mozilla.org/en-US/docs/JavaScript/Shells

    【讨论】:

      猜你喜欢
      • 2010-11-10
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多