【问题标题】:Execute all ajax request if browser closed如果浏览器关闭,则执行所有 ajax 请求
【发布时间】:2016-08-29 07:41:05
【问题描述】:

我的 codeigniter 项目中有一份报告,该报告是超过 100 页的复杂报告。

为此,我使用 ajax 来检索数据。

有超过 60 多个 ajax 请求,我使用 set time out 来运行每个请求。

报告花了将近 8 分钟才完成。

这就是我想运行 crone 的原因,但是当我添加 crone 时,它​​并没有通过 linux 运行 ajax 代码,

有没有办法从后端(不使用浏览器)或从 linux 运行整个过程?

【问题讨论】:

  • 也许是通过 cronjobs en.wikipedia.org/wiki/Cron?
  • 我从 cronjobs 尝试过,但 ajax 代码不起作用,我在每个循环中都有一个 foreach 循环 3 ajax 请求然后依此类推..
  • 请显示更多信息。喜欢分享你喜欢执行的代码。
  • 在 ajax 中你可能正在调用 phps 文件,对吗?所以使用 cronjobs 调用所有这些 php 文件
  • 好吧,让我上传我的文件,因为我不能在这里粘贴所有代码,它太长了。

标签: javascript php ajax linux codeigniter


【解决方案1】:

如果您正在寻找非浏览器选项,则无需使用 ajax。您可以使用纯 PHP 脚本执行相同的操作。您将 60 多个 ajax 请求转换为不同的函数,并在一段时间后调用这些函数。

【讨论】:

  • 但我的要求是 ajax,因为我的报告中有很多 highchart,为了创建 pdf,我使用 highchart 的导出服务器将我的图表转换为图像,然后在最后一个循环之后创建 pdf。
  • 如果您使用 ajax 只是为了将 highchart 转换为图像,那么我建议您将 highchart 生成的 HTML 画布存储到 DB 中,并在执行 cron 时将其转换为图像。 Highchart 只需要画布即可将其转换为图像。这里不需要 ajax 调用。
  • 如果我同意你的画布点,那么你怎么能在没有 js 的情况下绘制一个 highcharts,js 涉及到每一点。
  • 您提到了“(不使用浏览器)”。如果您想在浏览器上绘制图表,肯定需要浏览器。我仍然不知道你在做什么,但你可以做的是 - 用 js 绘制图形,将画布保存在 db 中,每分钟运行 cron 或任何你想要的。您可以划分以浏览器为中心和非以浏览器为中心的任务。所有非以浏览器为中心的都可以去 cronjobs。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-23
  • 2022-08-23
  • 2013-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多