Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    23

    Pagina lenta a caricare, cache multithreading possibile?

    Come da titolo ho una pagina in PHP che è molto lenta a caricare (30-40 secondi) e ho bisogno che venga caricata rapidamente, avevo pensato a una soluzione: ho una versione della pagina salvata in html, e quando l'utente visualizza la pagina PHP la pagina visualizza il contenuto della pagina HTML e avvia un altro processo che controlla se la pagina era vecchia e nel caso era vecchia la ricrea, ovviamente così l'utente avrà visto la pagina vecchia, ma non è rilevante per il mio sito, la cosa che mi interessa è che il sito venga aggiornato una volta ogni tanto e che non sia lento all'apertura, ora mi sorgono un paio di problemi:
    1) il multithreading in PHP è possibile?
    2) Se è possibile: la pagina viene considerata caricata al completamento del processo che la visualizza o viene considerata caricata solo al ricongiungimento dei due processi?
    3) Se non è possibile, c'è qualche alternativa?

    Mie osservazioni sui miei dubbi:
    1)Ho cercato su internet e qualcosina c'è, però richiedono tutti di installare l'estensione pthreads, che non posso installare essendo su un hosting aruba
    2)Il mio problema attuale è che anche se la pagina viene visualizzata senza intoppi dall'utente grazie a vari flush la pagina viene considerata lenta da Google e il sito mi è sceso in maniera disumana, quindi pensavo che salvando una copia della pagina e mostrando quella all'utente la velocità del caricamento sarebbe aumentata agli occhi di Google (il problema è come farlo...)
    3)Avevo pensato a caricare la copia pagina e alla fine della pagina avviare la procedura che la ricrea, ma il risultato è che anche se il contenuto della pagina si vede istantaneamente la pagina rimane in caricamento secondo il browser fino a che non ha ricreato la nuova pagina, in alternativa se c'è qualche altro linguaggio server side in grado di fare quello che mi serve non mi faccio problemi a smanettare su uno nuovo, avevo sentito dire che in Python si può fare, ma prima di iniziare a studiare un altro linguaggio volevo essere sicuro che il PHP fosse da scartare,
    idee o suggerimenti?

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    30-40 secondi per aprire una pagina?
    sicuro di non avere margini di miglioramento nel tuo codice?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    23
    Quote Originariamente inviata da clasku Visualizza il messaggio
    30-40 secondi per aprire una pagina?
    sicuro di non avere margini di miglioramento nel tuo codice?
    Purtroppo no, si basa sul fare delle richieste ad un altro sito e ricevere dei JSON, la parte che interpreta il JSON è piuttosto scarna, la lentezza è dovuta alle molte richieste

  4. #4
    In base a cosa una pagina è considerata vecchia? Potresti schedulare l'esecuzione dello script PHP che aggiorna la pagina in modo che l'utente visualizzi solamente la versione HTML.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    23
    La pagina è considerata vecchia dopo un certo lasso di tempo(ancora devo deciderlo), comunque la tua idea sarebbe perfetta, ma non mi risulta ci sia un modo per eseguire del codice PHP ricorrentemente in background

  6. #6
    Certo che esiste. Prova a cercare "crontab" serve propio per schedulare operazioni da eseguire periodicamente.
    Eventualmente ci sono numerosi siti free che offrono tale servizio.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    23
    Non sarebbe stato male, ma qui arriva un altro problema: su hosting aruba non posso usare il comando shell_exec...
    (si, il mondo mi odia <.<'')

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    23
    In php non c'è modo di eseguire qualcosa in background senza ricorrere alla Shell di linux?

  9. #9
    Shell_exec() non c'entra nulla.
    Aruba ti mette a disposizione lo Scheduled Tasks e, in ogni caso, come ti ho già detto, puoi accoggiarti a siti esterni per l'utilizzo di cronjob.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    23
    Grazie mille della risposta, penso il problema sia già risolto così, ma prima di chiudere del tutto la discussione avevo un piccolo dubbio: Aruba consente di eseguire una task minimo ogni 30 minuti, ho bisogno che i minuti siano 5 circa, dici che posso farlo mettendo un limite di tempo a 25 minuti, salvandomi il tempo all'inizio dello script e avviando un ciclo che riesegue il codice quando sono passati 5 minuti dall'ultima esecuzione, ma meno di 25 dalla prima?

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.