Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Includere javascript via XHR

    Ciao a tutti.

    Sto sviluppando un micro-framework in javascript, il framework usa dei package per organizzare le librerie ed è diviso in più file (Uno per classe).

    Data l'organizzazione modulare, ho implementato una funzione per la gestione delle inclusioni che ho chiamato include().

    include() importa solo le librerie del framework e lo fa via XHR (con chiamate sincrone), passando poi alla funzione eval() il risultato della chiamata in caso di successo.

    Ora, so che non dovrei farlo in teoria e rispetto di tecnologia/standard/accessibilità/sicurezza/statistica, perche:
    - js è un linguaggio lato client interpretato dal browser dell'utente e non da una VM dedicata al linguaggio.
    - le librerie andrebbero importate una volta sola nell'HTML utilizzando il tag script.
    - usando chiamate sincrone dopo il caricamento della pagina rischio caricamenti prolungati - o peggio un crash del browser - quando l'utente a ragione non se li aspetta.
    - passare ad eval() il risultato della richiesta è un cazzotto in faccia alla sicurezza, anche se le chiamate sono limitate allo stesso dominio.
    - una percentuale di lobotomizzati..ehm...utenti non trascurabile, usa quella m***a fumante di internet explorer che da domani potrebbe tirare fuori un nuovo e malefico componente activeX che mi costringe a riscrivere le mia libreria.

    Il problema è che questi paletti derivano da esperienze personali, in rete ho trovato diverse implementazioni della stessa idea, ma tutte consistono nello stampare il tag script tramite js, pittosto che includerlo con ajax.
    Inoltre nessuna delle librerie di terze parti che ho visto finora presenta nulla di simile nelle proprie API.

    Sapreste darmi un feedback a riguardo?

    Grazie in anticipo

    Noskilled

  2. #2
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Io mi sono trovato a includere uno script esterno tramite AJAX + il costruttore di funzioni (new Function("…")). È un metodo a prova di bomba per quanto riguarda la sicurezza, perché il costruttore di funzioni non ha il permesso di accedere al local scope del punto in cui viene invocato, ma solo al proprio local scope e al global scope. Come prestazioni è pressoché identico a eval("…").

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.