我在page1.php中有一個表單,它們都重定向到page3.php,並且還觸發page2.php中的ajax post(沒有成功函數),page2.php可能需要運行一個小時,但用戶不需要結果。我確實需要用戶看到page2.php,但他可能會離開。使用ignore_user_abort和set_time_limit(0)
我需要在page2.php中使用這兩個函數嗎?或者只是其中的一個?或者沒有?我想確保page2.php中的腳本運行到結束。
page1.php中
<form id="form" action="page2.php" method="post">
<!--form input elements with names-->
</form>
<script>
$('#form').submit(function() {
$.post('page3.php', {
var1: $('input[name="name1"]').val(),
var2: $('input[name="name2"]').val(),
});
});
</script>
使page2.php
<?php
ignore_user_abort(true); // Allow user to navigate away
set_time_limit(0); // Allow script to run indefinitely
// a lot of code which will run for a while - between 3 minutes and an hour
?>
Page3.php
<html>
<!--some code here including links to go to page4.php-->
</html>
我問部分是因爲我覺得沒有必要對任何這些功能,但被告知使用它們,但是當我嘗試使用它們時,儘管有die();
和腳本st ops,它似乎仍在處理某些事情,我害怕因爲這個「無限期」而在服務器上太多了。 因爲我不想添加不必要的負載。
哦哇,這是大家很新的給我,你能不能告訴我一些鏈接/文件? – 2012-01-08 20:22:36
試試[this](http://tinyurl.com/75r8y5f)網站。 – jmkeyes 2012-01-08 21:07:24
更新了簡單的文件鎖定示例,以瞭解如何通過cron和mysql設置php腳本,以最好地檢查相應控制面板的文檔以及使用mysql的php.net/mysql – 2012-01-09 17:06:02