我在前端使用
DHTMLX Scheduler和后端的DHTMLX Connector作为我的无线电自动化应用程序的一部分.每次用户编辑日历时,都会对一个如下所示的文件进行AJAX调用:
require_once("dhtmlxScheduler_v4/connector/scheduler_connector.PHP"); require_once('QDRAconf.PHP'); $res = MysqL_connect($QDRAconf['MysqLHost'],$QDRAconf['MysqLUser'],$QDRAconf['MysqLPass']); MysqL_select_db($QDRAconf['MysqLDb']); // init the schedulerconnector $conn = new SchedulerConnector($res); // render the table $conn->render_table("events","id","start_date,end_date,text");
这个文件是我的“垫片”,挂钩到前端.我想要运行另一个PHP脚本将更改写入我的crontab,但是需要在DHTMLX库更新数据库之后进行.麻烦的是,DHTMLX库会自动退出,只要它认为它完成:有时它可能不会超过第一个require_once(‘…’)行,所以我不能只是把require_once(‘cronwriter.PHP’);在脚本的最后一行.
我的解决方案是创建一个具有析构函数的类,通过最新的更改更新crontab.由于PHP手动states that析构函数仍然会在exit()或die()函数被调用时运行,所以我添加了一个带有析构函数的虚拟类,它运行cronwriter.PHP脚本:(我把它添加到文件的开头)
class ExitCatcher { function __destruct() { require_once('cronwriter.PHP'); } } //init the class $ExitCatcher = new ExitCatcher;
由于某种原因,它不起作用.
register_shutdown_function可以提供一个快速的解决方案;但是,您可以通过检查图书馆零星过程停止的原因来节省自己一些未来的麻烦.
一个好的开始的地方可能是…
>您的浏览器的JS console for JS错误>您的JS控制台的AJAX错误的网络标签>您的服务器错误日志中的PHP错误
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。