Ajax Page Echo vs Background Ajax/Manipolazione HTML diretta?
-
27-10-2019 - |
Domanda
Ho un dilemma e potrei davvero usare alcuni consigli. Sto costruendo un sistema di ordinazione con PHP/Smarty/HTML/jQuery. Attualmente lavora sul sito in cui il venditore confermerà gli ordini.
Devo avere 3 div.
- Ordini in attesa Div - Contiene una tabella con ordini non trasformati
- Ultimi ordini Div - Contiene una tabella con gli ultimi ordini elaborati (10-20 righe)
- Dettagli Div - Contiene informazioni sull'ordine e i pulsanti per confermare/declinare
È una tipica situazione di detail principale, solo il master è diviso in 2 parti (1,2) e i dettagli sono in Div 3. Naturalmente tutto è collegato a JavaScript/Ajax in modo che l'utente possa ottenere la sensazione "in tempo reale". Ordini di attesa Div è riempito tramite tecnica di cometa (impollimento lungo).
Il mio dilemma è come collegare i Div con JavaScript/Ajax. Dovrei fare pagine di eco che corrispondono allo stato DB e caricano completamente i div. O dovrei manipolare solo le righe della tabella e usare AJAX solo per le chiamate DB di fondo?
Per chiarire me stesso più chiaro:
Opzione 1 (pagine complete di Ajax):
- Quando l'utente seleziona l'ordine di attesa, la nuova pagina (tabella ecota) viene recuperata con Ajax e caricata in dettagli div
- Quando l'utente conferma/diminuisce l'ordine in Div 3, i div 1 e 2 vengono aggiornati con AJAX (pagine di eco con tabelle che corrispondono allo stato in DB)
Opzione 2 (manipolazione HTML/background AJAX):
- Quando l'utente seleziona l'ordine di attesa, gli elementi di Div 3 vengono riempiti con nuovo valore.
- Quando l'utente conferma/diminuisce nell'ordine in Div3, TR dalla tabella in Div 1 viene rimosso (Background Ajax a DEL da DB) e lo stesso TR viene aggiunto in Div 2 (in background Ajax per inserire in DB)
Quindi da che parte andare?
Soluzione
Entrambi i modi sono accettabali, ma NR 1 è meno intuitivo, a causa di ricarica Div 1 e 2. Quando carichi qualcosa in Div 3, hai il suo ID, quindi dovrebbe essere un problema copiare / aggiungere TR (e aggiungere colore, quindi l'utente sa cosa è successo).
Se scegli 2, ricordati di bloccare / legare nuove azioni ai tuoi elementi TR, perché quando si sposta il tuo TR in un altro posto, non attiverà azioni che hai legato in precedenza.
Probabilmente andrei con 2 io stesso;)
Ps. Aggiungi overlay con il caricatore Ajax (http://ajaxload.info/), per essere al sicuro dalle interruzioni degli utenti, mentre si carica i dati in Div 3. Anche l'utente sarà più felice, perché saprà che sta succedendo qualcosa;)