php怎么实现定时提醒功能
答案:2 悬赏:40 手机版
解决时间 2021-03-19 04:21
- 提问者网友:趣果有间
- 2021-03-18 16:35
php怎么实现定时提醒功能
最佳答案
- 五星知识达人网友:未来江山和你
- 2021-03-18 17:22
由于涉及到了浏览器端和服务器端,要实现真正意义的实时提醒就必须用长连接,但你这个应用,只是个定时提醒功能而已,用户登录以后一个日程不就最多提醒1次么?所以用长连接代价就太大了,而且实现也比较麻烦。通常思路ajax是正确的。但是就你这个应用,服务器端的数据是基本恒定的,只是浏览器端有实时性要求,并不是真正的实时性应用(即时通讯,金融服务等)。所以我觉得连ajax都是浪费,毕竟请求资源也是资源啊,能省就省省。我给你提供一个思路你来参考:用户登录的时候或者设置日程以后,把他的当日的日程提醒数据(通常不就是今天某时某刻干什么事么?很小的数据量)直接保存到用户的cookie里,甚至可以保存到几个隐藏的表单域里面,js定时器会写吧,把触发提醒的条件语句写到N秒执行一次的定时器里面就ok了。
全部回答
- 1楼网友:英雄的欲望
- 2021-03-18 18:07
一般来说,php是作为网站脚本语言进行运行的,也就是客户端请求服务器网关后,由cgi程序调用php来解析代码并执行,然后将执行结果发送给用户。一般是这种模式。
上面这种模式意味着,没有用户请求,就不会执行php代码,也就无法“定时提醒”。
要实现“定时提醒”功能,就要保证让php一直处于运行状态(当然,通过操作系统去设置定时任务也行,但是那就与php无关了)(或者,将脚本超时时间去掉,然后让php代码进入一个“死循环”,不过这种方式非常不好,不建议)。
网上有一些比较成熟的框架,比如我比较喜欢的workerman,你可以将php程序做成一个守护进程服务,这样就能保持php一直处于运行状态,到时间了,就自动调用一个函数执行一段代码就行,一般是通过websocket通知用户(如果目标用户浏览器允许使用html5的话)。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯