【问题标题】:Run command as page is being closed?在页面关闭时运行命令?
【发布时间】:2013-02-04 18:40:34
【问题描述】:

如果窗口关闭,我可以运行 php 命令吗?

例如,我有一个脚本,用户可以使用该脚本将文件上传到服务器上的临时目录,以便用户决定是否要保留它们。但是,就目前而言,如果用户只是离开页面,文件就会保留在那里。

谢谢

【问题讨论】:

  • 您可以使用javascript来检测窗口是否关闭。如果为真,请对您的脚本进行 ajax 调用。

标签: php


【解决方案1】:

您可以使用 onBeforeUnload 添加一个在用户离开页面前警告用户的 javascript,可以在此处找到一些示例:

JavaScript + onbeforeunload

【讨论】:

    【解决方案2】:

    您也许可以在 javascript 中拦截页面退出事件并将其传递给您的 php 应用程序:Intercept page exit event

    这似乎会更好地实现为服务器上的 cron 作业,该作业将清理临时目录中的文件。

    【讨论】:

      【解决方案3】:

      PHP 脚本必须由“某物”初始化。话虽如此:

      您可以考虑一个经常运行的CRON 作业并为您运行一个PHP 脚本。例如,假设您想每半小时“清除”一次临时目录,CRON 作业将非常适合。 -- JavaScript 可能不是你最好的选择的原因是,正如你所说,如果用户关闭窗口,JavaScript 将停止运行。

      【讨论】:

      • 谢谢,我想到了这一点,但如果用户在上传文件的过程中处于中间状态,那么他们会在完成之前删除他们已经完成的文件
      • 是的,我明白了。但是,您无法控制用户在流程完成之前离开。你所能做的就是尽力“猜”出“离开”是什么意思。如果它的意思是“保存”,那么 CRON 。如果它的意思是“不,我不想要他们”,那么 CRON 就是。这可能意味着“这需要很长时间”。关键是每种情况都会有所不同,除非您进行更多研究并可能进行一些用户批评等,否则您将不会“知道”用户想要什么...SESSION 存储也可能是这里的替代方案。带着“你离开这里,你想......”只是一个想法......
      猜你喜欢
      • 2010-09-30
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多