• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kod PHP wykonywany automatycznie co parę sekund.

Object Storage Arubacloud
0 głosów
1,258 wizyt
pytanie zadane 29 listopada 2015 w PHP przez No Lime Gaduła (4,540 p.)

Witam. Chciałbym aby na stronie głównej pewien skrypt który jest zamieszczony w pliku o nazwie 'skrypt.php' był wykonywany przez cały czas co np. 3 sekundy.
 Próbuje to zrobić przy pomocy AJAX-a. Wiem w jaki sposób na przykład tekst zwykły przetransportować, natomiast nie wiem jak przesłać AJAX-em 36 linijkowy kod php który będzie odnawiać swoje działanie.
To mój index.php

<html>
 <head>
 	<title></title>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 
 	<script>

 $(document).ready(function(){
        $.ajax(
        {
            type: 'post',
        url:'skrypt.php',
        data: {action: 'test'},
        success: function($action) {
        "include skrypt.php";
      }
        });
    });

 	</script>
 </head>
 <body>
 
 </body>
 </html>

A to plik skrypt.php

<?php 

if(isset($_POST['action']) && !empty($_POST['action'])) {
    $action = $_POST['action'];
    echo 'lol';
}
echo 'lol';
 ?>

 

2 odpowiedzi

+2 głosów
odpowiedź 29 listopada 2015 przez Comandeer Guru (601,510 p.)
You're doing it wrong!

Po prostu co 3 sekundy wywołuj ten skrypt i patrz co zwraca
komentarz 29 listopada 2015 przez Comandeer Guru (601,510 p.)

Aa, no bo masz document.ready. Powinno być:

function skrypt()
 {
    $.ajax(
    {
        type: 'post',
        url:'skrypt.php',
        data: {action: 'test'},
        success: function($action) {
            $('#kod').html($action);
        }
    });
 }
setInterval(skrypt, 1000);

 

komentarz 29 listopada 2015 przez No Lime Gaduła (4,540 p.)

Faktycznie działa. Działało też wcześniej tylko ja po prostu tego nie widziałem. Omyłkowo wyobrażałem to sobie jako rezultat pętli. Czyli co sekundę, pod starym napisem 'lol' pojawiałby sie nowy. Przypomniało mi się jednak, że to działa inaczej i dopiero gdy w pliku 
'skrypt.php' zamiast

echo 'lol';

dałem

echo rand(5,10);

zauważyłem 'namacalne' zmiany. Dziękuje za pomoc i zerknij proszę do komentarza niżej bo faktycznie sugestia tomashpl jest poprawna.

komentarz 29 listopada 2015 przez Comandeer Guru (601,510 p.)
Dlatego zasugerowałem Web Sockets/long polling… ;)
komentarz 29 listopada 2015 przez No Lime Gaduła (4,540 p.)
Wygooglowałem to wcześniej. Od czego zacząć? Mogłbyś mnie nakierować bardziej konkretnie na jakiś właściwy tor? Nigdy nie używałem rozwiązań które wymieniłeś.
komentarz 29 listopada 2015 przez No Lime Gaduła (4,540 p.)
0 głosów
odpowiedź 29 listopada 2015 przez tomashpl Obywatel (1,370 p.)
Co 3 sekundy? Pachnie mi to DDoS-em.
komentarz 29 listopada 2015 przez No Lime Gaduła (4,540 p.)
DDoS-em ? Chcę żeby skrypt na mojej stronie wykonywał się co kilka sekund. 3 sekundy to był przykład.
komentarz 29 listopada 2015 przez tomashpl Obywatel (1,370 p.)

A jak Ci wejdzie 10 osób na stronę i każda bedzie wysyłała żądanie co te kilka sekund do serwera, to będziesz miał co te kilka sekund 10 żądań. 

Ja myślę, że to nienajlepsza opcja, ale jeśli chcesz, to zrób to w JS:

function myFunction() {
    //kod
    setTimeout(function() { myFunction() }, 3000);
}

 

komentarz 29 listopada 2015 przez No Lime Gaduła (4,540 p.)
Masz rację. Zatem w jaki inny sposób mógłbym zrobić wykonywanie skryptu co kilka sekund nie zabijając przy tym serwera?
komentarz 29 listopada 2015 przez tomashpl Obywatel (1,370 p.)
Zastanów się, czy nie możesz tego przepisać tak, żeby skrypt wykonywał się całkowicie po stronie klienta, właśnie za pomocą javascriptu. Jeśli potrzebujesz zaciągnąć jakieś dane z bazy, to może trzymaj je w jakimś pliku typu json, a na serwerze tylko generuj go z poziomu PHP za pomocą crontaba, żeby się to robiło cyklicznie...

Wtedy nieco odciążysz parser PHP i bazy danych, co już nie będzie tak zabójcze dla serwera.

Podobne pytania

0 głosów
2 odpowiedzi 502 wizyt
0 głosów
0 odpowiedzi 83 wizyt
pytanie zadane 23 maja 2019 w Sieci komputerowe, internet przez Norciu Nowicjusz (140 p.)
+2 głosów
2 odpowiedzi 3,053 wizyt
pytanie zadane 26 września 2019 w C i C++ przez Milo Obywatel (1,180 p.)

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...