Search code examples
phpjavascript

Will a script continue to run even after closing a page?


if i call a php file via jquery ajax, that contains a script to do some stuff that takes a while — for instance uploading a big video — and then I close the page: does the php script keep loading the video or not?


Solution

  • See here: http://php.net/manual/en/function.ignore-user-abort.php

    int ignore_user_abort ([ bool $value ] )
    

    Sets whether a client disconnect should cause a script to be aborted.

    When running PHP as a command line script, and the script's tty goes away without the script being terminated then the script will die the next time it tries to write anything, unless value is set to TRUE

    There also is a PHP configuration option of the same name: http://php.net/manual/en/misc.configuration.php

    By default, if you do nothing, according to the PHP manual the default is to abort the script. http://php.net/manual/en/features.connection-handling.php

    NECESSARY UPDATE

    It seems I (unknowingly) tricked my way to "reputation points", because I did NOT supply the (correct) answer, but here it is now thanks to testing and continued nudging from "mellamokb":

    Quote: "Ok, I took a look at the PHP source code and, if I didn't miss anything, I now have the answer. The "ignore_user_abort" flag is only checked when PHP receive an error trying to output something to the user. So, in my understanding, there is no way to interrupt code which doesn't produce any output."

    Okay, I wasn't totally off, but it is important to know that it all depends on whether or not your script produced any output!

    If you read THIS, also DO check out the comments below.