Applicazione Web a pagina singola e che richiede JavaScript

2

Ho l'impressione, e sono d'accordo, che è male creare un'applicazione web che richiede JavaScript per funzionare correttamente.

Cosa succederebbe se si creasse un'applicazione a singola pagina? È possibile crearne uno che non si basi su JavaScript, senza essere difficile o pieno di "hack"?

    
posta Nathan Lutterman 17.10.2013 - 01:10
fonte

7 risposte

5

Direi di no. 5-10 anni fa sarebbe stato pessimo creare un'applicazione web che richiedesse JavaScript, ma la tecnologia sta avanzando e, in quanto tale, le applicazioni web stanno diventando più dinamiche e richiedono una tecnologia di elaborazione adeguata. Qui entra JavaScript.

Le applicazioni web a pagina singola rischiano di essere ancora più dipendenti da JavaScript, in quanto tendono a fare un uso strong delle chiamate AJAX per mostrare i dati.

Alla fine della giornata, potresti teoricamente creare un'applicazione a singola pagina nel codice lato server come PHP, ma la qualità del sito Web sarà gravemente carente rispetto a quella che sfrutta appieno la tecnologia disponibile oggi .

    
risposta data 17.10.2013 - 01:20
fonte
7

La risposta breve alla tua domanda principale è "no". Non puoi scrivere un'app a pagina singola nel senso convenzionale senza fare affidamento su JavaScript. La definizione comune di una SPA utilizza una combinazione di rendering sul lato client utilizzando la manipolazione DOM e le chiamate AJAX per fornire un esperienza fluida e reattiva del cliente. Per definizione, questo include l'uso di JavaScript.

Si potrebbe argomentare che le applet Java o le tecnologie plug-in come SilverLight e Flash forniscono un'esperienza di qualità simile e possono coinvolgere solo un caricamento di una sola pagina, ma questo non è generalmente ciò che la gente intende quando parla di SPA. Inoltre, i plug-in hanno meno probabilità di essere installati e attivi sul browser di un utente rispetto al semplice vecchio, onnipresente JavaScript.

In termini di bontà o malvagità di JavaScript, altre risposte lo hanno affrontato bene. JavaScript è ora ampiamente accettato e ci sono poche ragioni per esitare a usarlo per le applicazioni web, anche se non sono SPA.

    
risposta data 17.10.2013 - 03:15
fonte
2

Ricordo che le persone hanno fatto questa discussione 10 anni fa e anche allora ho pensato che fosse ridicolo. A parte il super uber-geek che rappresenta lo 0,01% della popolazione, nessuno si spegne javascript in questi giorni . Nessuno. Odio essere dogmatico su questo, ma guarda i più grandi siti web - gmail, facebook, twitter, youtube - tutti hanno bisogno di javascript per funzionare.

L'unica cosa a cui prestare attenzione è la sicurezza: non puoi fare affidamento su javascript per la convalida perché l'utente potrebbe disattivarlo - o, peggio ancora, modificarlo .

    
risposta data 17.10.2013 - 02:48
fonte
2

Vediamo. Così ora, posso costruire app sul desktop usando il nodo-webkit di Roger Wang, scrivere codice sul lato server che funziona senza dover armeggiare con 18 strati di configurazione e server assurdamente complicati che si rifiutano di fare le cose "duh" giuste Immediatamente pronto, scrivi app phonegap / cordova per Android, IOS, Winphone e diverse altre piattaforme contemporaneamente, incluso desktop che riutilizzano per lo più lo stesso codice nel nodo-webkit di Roger Wang (consiglio vivamente btw - grazie a Roger). Posso scrivere GUI Linux in JS. Posso fare quasi nulla con Microsoft usando la tecnologia web ...

Quindi ... sì. Direi che la risposta è sì. Ma non è solo JS. Se vuoi davvero essere in grado di gestire bene l'interfaccia utente, devi imparare la schifezza dei CSS. Una volta che la schifezza è stata appresa, puoi fare quasi tutto, comprese le prestazioni critiche, con un piccolo aiuto dai nostri amici C e C ++ legato facilmente a JS tramite V8.

E non puoi essere un dev di Java a riguardo e scrivere una volta e testare da nessuna parte. Devi effettivamente imparare le stranezze delle piattaforme che stai supportando. Non esiste una soluzione multipiattaforma che lo abbia negato, ma direi che la tecnologia web e gli sviluppatori di interfacce utente web hanno insegnato al pianeta come finalmente! @ # $ Farlo bene.

Quindi impara di più e sarà meno difficile. Impara a normalizzare correttamente per multi-piattaforma e usa OOP a tuo vantaggio e potresti rimanere scioccato dal modo in cui è gestibile e snello e significa un'app JS ben scritta e non hacker che gestisce molteplici interpretazioni di ciò che il suo codice in realtà significa essere. Fai un salto lungo la corsia di memoria su Quirksmode. Leggi la prima edizione di DOM scripting. Fai una visita al sito di Dean Edwards e soffi via parte della polvere di alcune sue idee ancora completamente pertinenti e fantastiche. Siamo stati a questo "esigere che la nostra funzione JavaScript funzioni correttamente" per un po 'di tempo, ma direi che probabilmente è davvero iniziata quando tutti si sono resi conto di quanto potessero essere utili e potenti DOM + CSS2 + e JavaScript (bene prima che le persone iniziassero a armeggiare con XHR e ad assegnare un'importanza indebita al contributo di Ajax all'evoluzione della moderna app web.

Per quanto mi riguarda, e sono stato esposto professionalmente a PHP, Python, C #, Java e Ruby, nessuna lingua è popolare, diffusa, adattabile, normalizza e JS. Niente. Questo potrebbe avere qualcosa a che fare con il motivo per cui si è diffuso dal browser lato client come un incendio e ti stai irritando che continui a scorrazzare dappertutto.

    
risposta data 17.10.2013 - 05:50
fonte
1

Sì, è possibile. Il modo per farlo è innanzitutto creare un'applicazione multi-pagina, quindi migliorarla progressivamente in un'applicazione a pagina singola. Nel codice lato client, l'API della cronologia HTML5 viene utilizzata per manipolare l'URL in modo che se l'app viene aggiunta ai segnalibri in qualsiasi momento, il segnalibro mostrerà la stessa pagina o lo stesso stato dell'applicazione indipendentemente dal browser in cui è stato aperto il segnalibro. È molto lavoro? Sì, ma questo è in effetti lo schema che di solito viene seguito per rendere le applicazioni a pagina singola che funzionano senza JavaScript.

Un esempio famoso è GitHub Tree Slider .

    
risposta data 17.10.2013 - 02:38
fonte
1

Puoi utilizzare metodi come post-back, convalida lato server, ecc. come fallback per i visitatori non javascript. Non sarà senza soluzione di continuità in quanto richiede, per lo meno, più caricamenti di pagina, ma può essere fatto.

    
risposta data 17.10.2013 - 04:54
fonte
1

Is it possible to create [a Single Page Application] that doesn't rely on JavaScript, without being difficult, or full of "hacks"?

Sì, puoi ...

Se la definizione di SPA è che hai solo un punto di accesso per la tua applicazione web, allora puoi sicuramente creare una SPA senza Javascript.

Sfortunatamente avrai una sola pagina basata su postback complicati.

I'm under the impression, and I agree with it, that it's bad to create a web application requiring JavaScript to function properly.

Perché hai una tale impressione, davvero?

Potresti dare un'occhiata alle statistiche del tuo server e vedere quanti utenti hanno Javascript disabilitato. Anche per questo è disponibile un servizio pixel . Non ho visto nessuna statistica sui luoghi in cui ho lavorato dove è superiore all'1% per diversi anni.

Se lavori con siti in cui disabilitato javascript / css è un requisito allora SPA non è probabilmente l'opzione migliore per te. Posso immaginare che gli utenti con disabilità cognitive (come gli utenti ipovedenti) o chiunque abbia uno screen reader abbia difficoltà a navigare in un sito SPA.

    
risposta data 17.10.2013 - 08:16
fonte

Leggi altre domande sui tag