Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    78

    Ricaricare un file SENZA ricaricare tutta la pagina

    Salve a tutti, provo a chiedere il vostro aiuto dato che io non ne vengo a capo.

    Premessa: posso usare solo Javascript lato client, quindi è inutile che mi consigliate di risolvere con altri linguaggi e/o lato server.

    Con JS scarico un file da cui con un'apposita funzione ricavo quello che mi serve e lo stampo a video, e fin qui ci riesco comodamente con callback.

    codice:
    <script type="text/javascript" src="htpp://URL&amp;alt=json-in-script&amp;callback=myFunction"></script>
    
    <script type="text/javascript">
    function myFunction(json) {
    ...istruzioni per trovare i dati utili dal file scaricato, organizzarli e stamparli con document.write()...
    }
    </script>
    Problema: io vorrei aggiungere un pulsante che permetta di aggiornare il file, cioè di riscaricarlo e ristampare i risultati di myFunction, senza però ricaricare tutta la pagina.

    Qualcuno sa come fare, o anche solo dirmi per certo che non si può fare (così non ci perdo altro tempo)?

    Grazie anticipate a tutti per l'attenzione.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    78
    Nessun suggerimento? Neanche per dirmi "guarda che non si può fare", così non ci perdo altro tempo?

    Io ho provato ad associare all'onclick del pulsante la funzione:
    codice:
    function print_script(){
    document.write('<script type="text/javascript" src="htpp://URL&alt=json-in-script&callback=myFunction"><\/'+'script>');
    }
    Premendo il pulsante in FF mi ricarica tutta la pagina, IE si pianta e gli altri browser manco li ho testati.

    Ho anche provato ad associare all'onclick:
    codice:
    function add_script(){
    var s=document.createElement("script");
    s.type="text/javascript";
    s.src="htpp://URL&alt=json-in-script&callback=myFunction";
    document.body.appendChild(s);
    }
    Non che sperassi in qualche risultato e infatti non funziona, ma tant'è...

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Poco chiaro il problema o i problemi (da come l'hai descritti sembrano due) vedi se qui sez. [aiax]
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    78
    Il problema è uno, le soluzioni che ho provato e indicato (e che non funzionano) sono due.

    Il problema è: che funzione devo associare all'onclick di un pulsante di modo che premendo il pulsante mi venga caricato un file esterno JSON (sono dei feed di Blogger nel mio caso) ma senza essere obbligati a ricaricare tutta la MIA pagina?

    Senza usare nessun pulsante la soluzione è semplice, basta mettere nella pagina:
    codice:
    <script type="text/javascript" src="htpp://URL&alt=json-in-script&callback=myFunction"></script>
    Quando, caricando la mia pagina, arriva a questo script carica ciò che è contenuto nella pagina indicata dall'URL e lo dà in pasto alla funzione myFunction che provvede a stamapre quello che mi serve sulla mia pagina. Poi continua a caricare la mia pagina con quello che segue.

    Io vorrei aggiungere un pulsante che premuto mi rifaccia riscaricare quello che è contenuto nella pagina dell'URL e ristampare i risultati, senza però ricaricare tutta la MIA pagina. E devo per forza usare JS lato client, niente altro mi è permesso.

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Continuo a non capire il problema, prova mettere un link alla pagina demo pubblica forse c'è illuminazione :113:
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    78
    Innanzi tutto ti ringrazio molto per l'interessamento.

    Provo a mettere qui il codice ultra semplificato.
    codice:
    <head>
    <script type='text/javascript'>//<![CDATA[
    function printFeed(json){
      for(var i=0;i<json.feed.entry.length;i++){
        var jfe=json.feed.entry[i];
        document.write(jfe);
      }
    }
    //]]></script>
    </head>
    <body>
    Qui c'è un fracco di roba, immagini e quant'altro che NON voglio ricaricare premendo il pulsante "Aggiorna elenco feed".
    
    Quella che segue è la funzione che viene eseguita la prima volta durante il caricamento normale della pagina (serve a stampare i feed) e che voglio ricaricare usando un pulsante apposito:
    <div id ="Feed">
    <script type="text/javascript" src="/feed/posts&alt=json-in-script&callback=printFeed"></script>
    </div>
    Aggiorna elenco feed
    
    Altro fracco di roba che non voglio ricaricare premendo "Aggiorna elenco feed".
    </body>
    Che devo mettere nell'onclick per riscaricare i dati da "/feed/posts", ridarli in pasto a printFeed e ristamparli nell'apposito div, ma senza ricaricare tutto il resto della mia pagina?

    Anche se immaginavo non funzionasse, perché viene rimesso lo script ma non viene attivato, ho provato a usare nell'onclick sia:
    codice:
    document.getElementById('Feed').innerHTML='<script type="text/javascript" src="/feed/posts&alt=json-in-script&callback=printFeed"></s'+'cript>';
    sia:
    codice:
    var f=document.getElementById('Feed');
    f.innerHTML='';
    var s=document.createElement("script");
    s.type="text/javascript";
    s.src="/feed/posts&alt=json-in-script&callback=printFeed";
    f.appendChild(s);
    Ma appunto non funzionano.

    Qualcosa succede se metto nell'onclick:
    codice:
    document.write('<script type="text/javascript" src="/feed/posts&alt=json-in-script&callback=printFeed"></s'+'cript>');
    Quello che succede è che premendo il pulsante si ricarica tutta la pagina (FF) o si pianta il browser (IE).

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.