Kirjoittaja: Metabolix
Kirjoitettu: 09.01.2015 – 09.01.2015
Tagit: koodi näytille, vinkki
Yleensä PHP-skriptin suoritus keskeytetään, jos käyttäjä sulkee selaimen tai muuten keskeyttää sivun latautumisen. Tähän liittyy yksi pulma: jos sivun on tarkoitus tehdä jokin yhtenäinen toiminto, suoritus saattaa jäädä puolitiehen, jolloin pahimmillaan palvelimella oleva data vaurioituu. Jos skripti esimerkiksi lukee tiedoston, muuttaa tietoa ja alkaa sitten kirjoittaa tiedostoa uudestaan, skriptin keskeytyksestä voi seurata, että tiedosto on tyhjä tai keskeneräinen.
PHP:n asetuksella ignore_user_abort voi määrätä, että PHP-koodin suoritusta ei keskeytetä. Asetuksen voi lisätä PHP:n asetustiedostoon tai asettaa suorituksen aikana:
// Kielletään keskeyttäminen. ignore_user_abort(true); // Tehdään tärkeitä asioita. file_put_contents("tiedosto.txt", $data); // Sallitaan taas keskeyttäminen. ignore_user_abort(false);
Asetuksesta on hyötyä vain silloin, kun jokin toiminto voi jäädä haitallisesti kesken. Jos sivu ei muokkaa mitään tietoja vaan vain lukee niitä, asetusta ei yleensä kannata käyttää: sivusto voi toimia nopeammin, kun keskeytyneiden sivunlatausten käsittely lopetetaan heti.
Kiitos tästä!