Zachytávání stránky do souboru – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zachytávání stránky do souboru – JavaScript, AJAX, jQuery – Fórum – Programujte.comZachytávání stránky do souboru – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Pavelv0
Stálý člen
8. 2. 2022   #1
-
0
-

Ahoj, potřeboval bych v prohlížeči otevřít soubor pro zápis a průběžně do něj ukládat.

V js mám vytvořen terminál, něco jako putty, text získávám periodicky po 1s přes JSON. Délka řetězce text je okolo 1500 znaků.

var text = JSON.parse(this.responseText);
var divContainer = document.getElementById("output");
divContainer.innerHTML = text["text"];

Představa je taková, že na stránce klepnu na tlačítko start, otevře se dialogové okno pro ukládání souboru a každou vteřinu uložím obsah proměnné text. Po klepnutí na tlačítko stop, či zavření stránky se soubor ukončí.

Zatím to mám tak, že při stisku start začnu plnit vnitřní proměnnou, a po stisku stop ji uložím. To je však nepraktické z důvodu vytížení RAM a hlavně ztráty dat při při pádu aplikace.

Nahlásit jako SPAM
IP: 185.99.177.–
peter
~ Anonymní uživatel
3889 příspěvků
9. 2. 2022   #2
-
0
-

Moc tomu neverim, ze by to slo nejak jednoduse. Pravdepodobne leda jako plugin, ktery ma dostatecna opravneni k souborum na disku.
- Ale slo by pouzit zapis na server pres php a pak si ten soubor stahnout jako celek.
- Nebo, mozna, kdyz je mozne zapisovat pres Filewriter, ze to umozni.

google = javascript file continue writing by javascript
-> electron fs read json file (slova, na ktera jsem narazil, ktera jsem pak dal do googlu)

'use strict';

const fs = require('fs');

let student = { 
    name: 'Mike',
    age: 23, 
    gender: 'Male',
    department: 'English',
    car: 'Honda' 
};
 
let data = JSON.stringify(student);
fs.writeFileSync('student-2.json', data);

-----

use strict';

const fs = require('fs');

let student = { 
    name: 'Mike',
    age: 23, 
    gender: 'Male',
    department: 'English',
    car: 'Honda' 
};
 
let data = JSON.stringify(student, null, 2);

fs.writeFile('student-3.json', data, (err) => {
    if (err) throw err;
    console.log('Data written to file');
});

console.log('This is after the write call');

-> data written atomically
https://github.com/…-file-atomic

Totiz, myslim si, ze zasadni problem je v tom, ze s tim nepocita samotny browser. On neco podobneho dela pri stahovani souboru, ze jej stahuje po baliccich. Ale, v zasade chces, aby fungoval jako databaze. S tim on proste nepocita, ikdyz asi tak cely z casti funguje :)
Nicmene, jiste by slo napsat jako ten plugin, ktery by mohl mit dostatecna opravneni ke znovuotevreni souboru z disku. To samo o sobe je hackerskym utokem, v podstate. Dokonce by to mohl blokovat kdejaky antivir.

A co vyuzit js data storage (pro vetsi obsah) nebo js cookies (do asi 1k)? Pokud nemas zaple mazani obsahu po ukonceni tak by si to mohl pamatovat.
google = js data storage file writing for closed page
https://developer.mozilla.org/…side_storage
https://developer.mozilla.org/…localStorage

Nahlásit jako SPAM
IP: 2001:718:2601:258:85e8:dab8:b477:f4e9...–
gna
~ Anonymní uživatel
1730 příspěvků
9. 2. 2022   #3
-
0
-

Mně to zní tak, že máš ten server pod kontrolou, tak tam asi můžeš implementovat i ukládání a stahování toho obsahu.

Jinak jak píše Peter, přímo do souboru zapisovat nemůžeš, ale můžeš to ukládat v prohlížeči a pak stáhnout (Blob + window.URL.createObjectURL).

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý