Viste: modalità avanzata

Sar-At consente la creazione di Viste ad hoc in modalità avanzata. In altre parole, un programmatore che conosca il linguaggio standard per le basi dati, SQL, può scrivere a mano la istruzione (o "query") che Sar-At eseguirà per selezionare i record oggetto della Vista. Per attivare la modalità avanzata, nella schermata delle Viste si seleziona l'opzione "avanzata" nel menu a scomparsa.

Sar-At non consente editing "al vivo" delle viste avanzate. In altre parole, non apparirà la matitina che consente di editare il contenuto dei campi direttamente all'interno della pagina web.

Sar-At a partire dalla versione 7.1 effettua una verifica sommaria della sintassi di una Vista avanzata e non vi permette di registrare una Vista non funzionale.

Una pagina che contiene una vista standard può sempre finire nella cache di Sar-At, e quindi venire servita ai visitatori del sito in tutta velocità. Le viste ad hoc, cioè quelle scritte a mano in linguaggio SQL, potrebbero risultare incompatibili con la cache. Facciamo un esempio per capire dove sta il problema. Avete definito una sezione "banner" e l'avete riempita di inserzioni pubblicitarie che debbono apparire a rotazione in tutte le pagine del vostro sito. Avete poi scritto una Vista ad hoc che ha lo scopo di pescare un banner a caso tra tutti quelli disponibili. Se Sar-At mettesse nella sua cache le vostre pagine web, succederebbe che quando il primo visitatore naviga su una pagina allora la vostra Vista viene eseguita e pesca casualmente il banner dell'inserzionista Pinco Pallino. La pagina così prodotta viene poi salvata nella memoria cache e inviata in velocità a tutti i visitatori susseguenti. Questo comportamento però a voi non sta bene, perché voi desiderate che tutti gli inserzionisti vengano ugualmente rappresentati e non appaia il solo Pinco Pallino. Per questo motivo, quando una pagina contiene una vista ad hoc, Sar-At prudenzialmente la esclude dal sistema cache e quindi la rigenera ogni volta che un visitatore ci capita sopra.

Per una descrizione della cache da Sar-At si veda il manuale Governare il sito, capitolo primo, sotto a Prestazioni.

Quando si definisce una vista ad hoc, Sar-At permette al programmatore SQL di specificare se la Vista va ritenuta compatibile con la cache o meno. Vanno definite non compatibili tutte le viste che non estraggono sistematicamente alcuni record identificati per numero caratteristico (id). In sostanza, quando Sar-At genera una pagina web si segna quali record concorrono a formarla. Per esempio, in un sito di ricette, la pagina con la ricetta della torta di mele potrebbe dipendere solo dal record numero 1 della sezione ricette (che contiene appunto le istruzioni per cucinare una torta di mele). Se noi impaginiamo su un lato anche un indice di tutte le ricette dei dolci, Sar-At si appunta tutti gli id di tutte le ricette: in questo modo se noi cambiamo il nome del "tiramisù" in "tiramisu" (senza l'accento) Sar-At può riconoscere la necessità di rigenerare la pagina della torta di mele.

Le Viste ad hoc possono risultare non compatibili con la cache quando sfuggono a questa logica. Per esempio: è incompatibile una vista che non seleziona il campo id (SELECT id, altricampi FROM sezione); è incompatibile una vista che seleziona informazioni da due o più sezioni contemporaneamente (JOIN); è incompatibile una vista ad hoc che seleziona sulla base di informazioni che cambiano in continuazione, come l'ora corrente.

Le Viste ad hoc importate da versioni di Sar-At precedenti alla 7.0 per prudenza vengono sempre importate con la cache disabilitata. Per questo motivo vi consigliamo con forza, quando si aggiorna un vecchio sito all'uso della versione 7 di Sar-At, di passare in rassegna tutte le vostre viste ad hoc e indicare caso per caso se esse vadano considerate compatibili con la cache.