ThinkPHP5瀏覽器關閉,繼續執行php指令碼

2022-09-21 16:33:09 字數 1901 閱讀 5249

當前,定時任務對於乙個**來說,是乙個必要的需求,比如公尺撲部落格的定時發布文章、定時清理垃圾資訊、公尺撲**的定時傳送郵件、傳送簡訊提醒等。

那麼,如果非要php去實現定時任務, 有哪些方法呢?公尺撲部落格本文整理總結了幾種解決方案。

一、  簡單直接不顧後果型

<?php

ignore_user_abort();

//關掉瀏覽器,php指令碼也可以繼續執行.

set_time_limit(0); //

通過set_time_limit(0)可以讓程式無限制的執行下去

ini_set('

memory_limit

','1024m

'); //

設定記憶體限制

$interval = 60*30; //

每隔半小時執行

do

while(true

);?>

二、  簡單可控型

<?php

return1;

?>cron.php

ignore_user_abort();

//關掉瀏覽器,php指令碼也可以繼續執行.

set_time_limit(0); //

通過set_time_limit(0)可以讓程式無限制的執行下去

$interval = 60*30; //

每隔半小時執行

dowhile(true);

通過改變config.php 的return 0 ,來實現停止程式,乙個可行的辦法是config.php檔案和某個特殊表單互動,通過html頁面設定一些變數來進行配置

缺點:佔系統資源, 長時間執行,會有一些意想不到的隱患。比如記憶體管理、有人惡意更改配置檔案等

三、 簡單改進型

php指令碼sleep 一段時間之後通過訪問自身的方式繼續執行,就好像接力賽跑一樣..

這樣就能保證每個php指令碼執行時間不會太長,也就不受time_out的限制了.

因為,每一次一次迴圈php檔案都是獨立執行,所以這種方法避免了time_out的限制. 但是最好和上邊一樣加上控制**. cofig.php , 以便能夠終止程序.

四、自己整理

ignore_user_abort();

//即使client斷開(如關掉瀏覽器),php指令碼也可以繼續執行.

set_time_limit(0);

//執行時間為無限制,php預設的執行時間是30秒,通過set_time_limit(0)可以讓程式無限制的執行下去

瀏覽器視窗關閉

一般的視窗關閉的js如下寫法 window.close 但是呢,chrome,firefox等中有時候會不起作用。改為下面的寫法 window.open about blank self close 或者window.open self close 如果是frame的時候如下寫法 一般 window...

關閉瀏覽器 清除cookie

根據客戶要求使用dedecms v5.6版本,發現了乙個會員登入的bug!看來dedecms也不過如此!首先說說bug所在 在會員登入頁面 member index.php 登入的時候 有效期如果選擇 即時 那麼就永遠也登不上去了!原因簡單的查詢了一下 看到了吧,當 kptime 0 的時候,過期時...

關閉瀏覽器的監聽

需求 關閉瀏覽器時,退出,清除session。在網上找了一段 可是測試的時候有偏差,有時關閉瀏覽器可以退出,有時退出不了。分析後發現,當瀏覽器的視窗大小改變後,網頁的寬度沒有及時跟著變,這個專案沒有做到這一點。document.documentelement.scrollwidth 網頁寬度 doc...