Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Javascript - Attesa chiamata getJSON prima di caricare il body
Forum - Javascript - Attesa chiamata getJSON prima di caricare il body

Avatar
giocala88 (Normal User)
Expert


Messaggi: 248
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 11:48
Mercoledì, 10/01/2018
Salve ragazzi,
avrei bisogno di implementare un sistema che visualizzi il body della pagina html solo quando la chiamata $.getJSON ha restituito il risultato. Esempio:

test.html
Codice sorgente - presumibilmente Javascript

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.         <meta charset=utf-8 />
  5.         <title></title>
  6.         <link rel="stylesheet" type="text/css" media="screen" href="css/master.css" />
  7.         <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  8.         <!--[if IE]>
  9.                 <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  10.         <![endif]-->
  11. <script>$.getJSON('script.php', function (d) { $('body').html(d); });</script>
  12.  
  13. </head>
  14. <body>
  15.  <h1>Ciao</h1>
  16. </body>
  17. </html>



script.php
Codice sorgente - presumibilmente Plain Text

  1. <?php $array = array('result'=>'ok'); sleep(5); echo json_encode($array); ?>



Se io andassi alla pagina test.html questa per 5 sec mi visualizzerebbe "<h1>Ciao</h1>" e invece io vorrei che non mi visualizzasse nulla fino a lettura completata della chiamata $.getJSON.

In che modo posso farlo? Grazie.


PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 13:57
Mercoledì, 10/01/2018
Non hai spiegato perche debbano esserci degli elementi nel body inizialmente.
Comunque buona norma quando si predispone un caricamento asincrono delle pagine e che venga fatto capire all'utente che un caricamento sta effettivamente avvenendo e che non vi sia un errore intrinseco nella pagina che ne impedisca il caricamento.
Puoi predisporre un elemento all'interno della pagina che venga visualizzato solo in fase di caricamento.
Qando parte una richiesta json rendi visibile il suddetto elemento e lo nascondi una volta che il caricamento è avvenuto. Hai un minimo di basi di CSS?

PM Quote