JeuWeb - Crée ton jeu par navigateur
À la recherche d'un serveur Web portable pour promener un site sur une clé USB - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : À la recherche d'un serveur Web portable pour promener un site sur une clé USB (/showthread.php?tid=7721)

Pages : 1 2 3


RE: À la recherche d'un serveur Web portable pour promener un site sur une clé USB - Sephi-Chan - 14-11-2016

Oui c'est la solution intermédiaire que j'évoquais. Avec un simple code Javascript (glané sur Stack Overflow) :


function download(filename, content) {
 var pom = document.createElement('a');
 pom.setAttribute('href', 'data:text/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(content)));
 pom.setAttribute('download', filename);

 if (document.createEvent) {
     var event = document.createEvent('MouseEvents');
     event.initEvent('click', true, true);
     pom.dispatchEvent(event);
 }
 else {
     pom.click();
 }
}

Code :
<button onclick="download('data.json', { foo: 'bar' });">Download</button>


Mais c'est pas super agréable à utiliser (le fichier va directement dans le dossier de téléchargements) et un oubli est si vite arrivé (même si localstorage peut servir de garde fou).



Note que si j'opte pour cette solution pour la sauvegarde, je ne vais pas m'embêter avec XSL qui transforme du XML en HTML + Javascript : je fais directement le site en HTML + Javascript. Même en file:// je peux récupérer le contenu de mon fichier JSON en m'inspirant de JSONP :


// Le contenu de data.js est de la forme : execute({ "foo": "bar" });
function fetchJSON() {
  var script = document.createElement('script'),
      body   = document.getElementsByTagName('body')[0];

  script.setAttribute('type', 'text/javascript');
  script.setAttribute('src', './data.js');

  body.appendChild(script);
}

function execute(data) {
  // "Démarre" l'application JS avec data.
}



RE: À la recherche d'un serveur Web portable pour promener un site sur une clé USB - niahoo - 15-11-2016

Alors je ne connais pas l'api file mais je sais que TiddlyWiki est un wiki en javascript uniquement côté client qui écrit dans son propre fichier (le wiki lui-même quoi). Y a peut être moyen d'avoir tout dans un seul fichier html.

http://tiddlywiki.com/

Sinon cool l'outil !


RE: À la recherche d'un serveur Web portable pour promener un site sur une clé USB - Xenos - 15-11-2016

Evite les data-uri au profit des BlobUri ( https://developer.mozilla.org/en-US/docs/Web/API/Blob ): les data-uri sont limitées en longueur et un document HTML va vite creuver le plafond (qui ne doit pas dépasser les quelques Ko). Et oui, tu peux te passer du XML du coup.
Tu peux aussi faire en sorte d'avoir une alerte en cas de non-sauvegarde de la page quand tu quittes celle-ci (c'est 3 lignes de JS, et encore c'est peut-être même natif HTML, je ne sais juste plus lesquelles).

Pour le soucis du dossier de DL, tu peux tricher: ton bat (ou autre script) lance le file:/// puis attends que le fichier dans le dossier de downloads apparaisse avant de le déplacer (car juste attendre la fin de l'appel à file:/// pour faire ce déplacement implique sûrement d'attendre qu'on ferme le navigateur... bof bof pour moi, mais si ça te va).


RE: À la recherche d'un serveur Web portable pour promener un site sur une clé USB - christouphe - 16-11-2016

Salut la comp' ^^
Je viens de parcourir le sujet, as-tu essayé µWamp ? J'ai l'impression qu'il s'approcherait plus de ce que tu cherche (portabilité, interface simple qui peut être modifiée je pense...)
++