2012-12-16 12 views

risposta

0

Un Ajax request è generalmente creato per fare quel genere di cose con javascript o jQuery.

Non penso sia possibile farlo direttamente, poiché javascript esegue lato client, non lato server.

jQuery non può eseguire query di database (nessun gioco di parole previsto).

+0

* "... poiché javascript esegue lato client, non lato server .." * Sciocchezze. JavaScript sul server è abbastanza comune (NodeJS, SilkJS, Rhino, RingoJS, ...). * jQuery *, d'altra parte, è utilizzato quasi esclusivamente sul client. –

9

jQuery è progettato per essere eseguito all'interno di un ambiente browser   — in modo che sia un ambiente con un DOM, con supporto JavaScript (ovviamente) e così via.

Per recuperare i dati da MS SQL Server, è necessario accedere a un driver di database e accedere al server. È raro che il browser abbia queste due cose, e anche se lo fanno, di solito non vuoi che le due parlino direttamente.

Invece, il modo usuale per strutturare questo è far sì che il codice basato sul browser parli con un server di livello intermedio (un server web, dato che i browser sono bravi a parlare con loro), che quindi ha accesso al database. Ci sono diverse ragioni per questo:

  1. Ti dà un posto (il server tra il browser e il database) per applicare la sicurezza, gate-keeping, la limitazione, monitoraggio, ecc

  2. Previene esporre il codice e la struttura del database all'utente finale (poiché il codice JavaScript basato su browser può essere letto da chiunque desideri leggerlo).

  3. Ottenere l'accesso al driver di database dall'ambiente del browser è difficile, che richiede le cose non-standard come Internet Explorer di ActiveXObject che non sono presenti su tutti i browser e le avvertenze di sicurezza grilletto anche su browser che sei presente nella.

Come avete il discorso browser al server varia a seconda di cosa si vuole fare, ma la pratica moderna è quello di utilizzare l'Ajax, che si trova (un po 'apocryphally) per Asynchronous JavaScript e XML. (Al giorno d'oggi la gente lo usa per molto più di XML: JSON è una notazione di dati più comune.)

Quindi, per esempio, forse si vuole compilare un codice HTML su un clic del pulsante. Nel codice basato su browser, che ci si collegare il pulsante di scatto:

$("#theButton").click(handleButtonClick); 

avresti quel pulsante inviare una richiesta al server. Se la richiesta è idempotente (si ricevono sempre gli stessi dati), si invia un GET; in caso contrario, si invia un POST:

function handleButtonClick() { 
    $.ajax({ 
     url:  "/path/to/server/resource", 
     type: "GET", 
     data: {articleId: 27}, 
     success: function(data) { 
      /* ...use the data to fill in some HTML elements... */ 
     }, 
     error: function() { 
      /* ...show an error... */ 
     } 
    }); 
} 

Sul server, la pagina a /path/to/server/resource avrebbe fatto il lavoro necessario per verificare che la richiesta deve essere soddisfatta, la connessione al database, query (o aggiornare) le informazioni, e formattare una risposta per rimandare al client.

Ovviamente quanto sopra è un conto molto, molto, molto condensato di come si esegue questa operazione, ma si spera che pone le basi e ti dà un'idea di cosa esaminare per andare al passaggio successivo.

Problemi correlati