Ho bisogno di un database per implementare le funzionalità AJAX per la mia app?

0

Sono nuovo nella costruzione e nella progettazione di un'app Web, quindi mi piacerebbe qualche consiglio (Django è il mio framework). Sto cercando di creare un sito Web "how-to" che istruisca gli utenti sulla procedura dettagliata per eseguire una determinata attività. Mi piacerebbe che la navigazione del sito web fosse qualcosa del genere ...

link

... in cui è presente una navigazione ad albero nel riquadro di sinistra che elenca ogni passaggio (ad esempio, Passaggio 1, Passaggio 2, ecc.) che espande e carica le istruzioni per ogni passaggio nel diritto- riquadro. Non voglio ricaricare la pagina ogni volta in modo che mi porti in AJAX. A questo punto, non sono sicuro di come implementarlo. Memorizzo l'HTML / CSS in un database da estrarre quando l'utente fa clic su determinati collegamenti? O scrivo HTML / CSS nei miei file modello con display: hidden da modificare in display: block quando si fa clic sui collegamenti corrispondenti?

    
posta noblerare 05.08.2013 - 19:05
fonte

4 risposte

3

AJAX implica che stai facendo una chiamata al server per i dati, ma non c'è motivo per il server di recuperare i dati da un database - potrebbe gestirlo usando i file di proprietà o anche le costanti all'interno di un servlet Java o PHP / JSP pagina, senza alcun coinvolgimento di un DB.

Per quanto riguarda il tuo caso d'uso, a meno che il menu sia molto lungo e abbia casi d'uso complessi, perché non seguire semplicemente il tuo commento per nascondere i sottomenu con i CSS fino a quando non sono necessari? Se il problema sta caricando il contenuto nel riquadro di destra, può essere fatto anche usando target nel menu e avendo una cornice con nome o iframe per i contenuti.

    
risposta data 05.08.2013 - 20:05
fonte
2

AJAX non ha nulla a che fare con il back-end del sito web. Non hai bisogno di nulla "backing" - non un database, non xml, non JSON ... solo un modo per determinare quale pagina deve essere inviata.

AJAX, nella sua essenza, è solo un modo per fare una richiesta al server senza postare indietro l'intera pagina e ottenere qualcosa in cambio. Che qualcosa potrebbe essere JSON, che poi viene analizzato in nuovi valori da visualizzare. Potrebbe essere l'HTML che sovrascrive solo qualcos'altro già visualizzato. Potrebbe essere solo un true per rappresentare qualcosa completato con successo.

Quindi la forma più semplice di AJAX sarebbe avere un sito con main.html , menu/menu1.html , menu/menu2.html . In main.html , si utilizza il framework AJAX per pubblicare una richiesta per menu/menu1.html quando l'utente fa clic sulla prima opzione di menu e per menu/menu2.html quando fa clic sul secondo. In entrambi i casi, probabilmente vorrai sovrascrivere un elemento menu con i dati restituiti (o qualcosa) per visualizzarli. Lo faresti con javascript se django non lo gestisce per te.

    
risposta data 05.08.2013 - 20:04
fonte
1

No, non è necessario un database per implementare AJAX. I file flat xml o JSON archiviati sul server funzioneranno correttamente.

Tuttavia, si consiglia di creare una soluzione a documento singolo, o anche di utilizzare una configurazione basata su frame.

    
risposta data 05.08.2013 - 19:16
fonte
1

Cosa penso che stia cercando:

Pagina quadro: tutti i collegamenti puntano a questa pagina
Include la barra laterale hardcoded e un div con tutto il CSS per le istruzioni.

La barra laterale:

La barra laterale conterrà collegamenti a ciascuno dei passaggi, ma ogni href = step1 / 2/3 /...

Avrai quindi bisogno del codice JavaScript che avrà bisogno di ottenere l'href e di fare una query a una pagina statica (può essere dinamica, ma non necessaria) URL = "http://URL.com/path/file/" + href . Quindi imposta le istruzioni div su request.response.

link

Un file di testo con codice HTML equivalente a quello che verrebbe inserito nel div istruzioni

Codice di esempio:

HTML:

<!DOCTYPE html>
<html>
 <head>
  <jquery></jquery>
  <title></title>
 </head>
 <body>
  <div id="sidebar">
   <a href="step1" class="sidebarLink">step1</a>
   <a href="step2" class="sidebarLink">step2</a>
   ...
  </div>
  <div id="instructions">
   loading
  </div>
  <script>
   $(document).ready(function(){
    $(".sidebarLink a").click(function(event) {
     event.preventDefault()
     var step = $(this).attr("href")
     request=new XMLHttpRequest()
     request.open('GET',"http://URL.com/path/file/" + step,false)
     request.send()
     document.getElementById('instructions').innerHtml = request.response
    })
   })
  <script>
 </body>
</html>

link

sarà necessario inserire uno di questi file per ogni passaggio. Il file dovrebbe contenere qualcosa di simile al seguente:

<p>this is instructions</p>
<p>this is more instructional text</p>

Non riesco a ricordare la sintassi javascript per modificare l'URL del browser senza un aggiornamento, se ti serve questa funzionalità.

    
risposta data 13.09.2013 - 07:02
fonte

Leggi altre domande sui tag