Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

117
Visualizações
Implemente el guardado automático desde el navegador al dispositivo con solo un mensaje de diálogo

En un sitio que estoy implementando, los usuarios guardan archivos en su dispositivo local. Quiero implementar el guardado automático, pero preguntas como esta me convencieron de que no era posible sin un cuadro de diálogo "Guardar archivo" para cada escritura en el sistema de archivos (a menos que el usuario modifique la configuración predeterminada del navegador).

Sin embargo, ¡veo que app.diagrams.net lo hace! Una vez que especifico una ruta de archivo a través de un cuadro de diálogo inicial, mis ediciones se guardan automáticamente sin cuadros de diálogo adicionales. Ese proyecto es de código abierto , pero mis esfuerzos por encontrar el código relevante hasta ahora no han tenido éxito.

Alguien sabe como se hace?

Estos son los pasos para demostrar que es posible:

  1. Vaya a app.diagrams.net
  2. En el cuadro de diálogo "Guardar diagramas en", seleccione "Dispositivo"
  3. "Crear nuevo diagrama"
  4. "Crear"
  5. En el cuadro de diálogo "Guardar como", ingrese un nombre de archivo
  6. Haz algunas ediciones
  7. recargar la pagina
  8. "Abrir diagrama existente"
  9. En el cuadro de diálogo "Abrir", elija su archivo; se abre con sus ediciones guardadas automáticamente.
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Un vistazo rápido a la fuente y apps.diagram.net está utilizando la API de acceso al sistema de archivos para escribir en el sistema de archivos. Si mantiene el identificador del archivo a su alrededor, podrá continuar creando un elemento de escritura en él. Requiere que las cosas se ejecuten desde un contexto seguro (https) para funcionar.

He aquí un ejemplo simplificado:

 var fHnd = null; var counter = 0; var autoSaveOn = true; window.onload = function() { var autoSave = async function() { if (autoSaveOn) { counter++; document.getElementById('status').innerHTML = 'Saving...' const writable = await fHnd.createWritable(); await writable.write(counter); await writable.close(); document.getElementById('status').innerHTML = ''; window.setTimeout(autoSave, 3000); } } document.getElementById('btnAutoSave').addEventListener('click', async() => { if (autoSaveOn) { autoSaveOn = false; document.getElementById('btnAutoSave').innerHTML = 'Turn autosave on'; } else { autoSaveOn = true; document.getElementById('btnAutoSave').innerHTML = 'Turn autosave off'; await autoSave(); } }); document.getElementById('btnCreateFile').addEventListener('click', async() => { fHnd = await window.showSaveFilePicker({ types: [{ description: 'Text Files', accept: { 'text/plain': ['.txt'] } }] }); document.getElementById('btnCreateFile').style.display = 'none'; document.getElementById('btnAutoSave').style.display = 'block'; await autoSave(); }); }
 <!doctype html> <html> <head> <script language="javascript" src="./sample.js"></script> </head> <body> <button id="btnCreateFile">Save to file</button> <p id="status"></p> <button id="btnAutoSave" style="display: none">Turn autosave off</button> </body> </html>
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda