18. november 2006 - 10:25Der er
23 kommentarer og 1 løsning
Læse binær fil ind i array
Dette er i forlængelse af et tidligere spm. omkring læsning af binære filer i JavaScript, se: http://www.eksperten.dk/spm/548514. Her bruges en funktion: function binaryRead(path) { var stream, binaryStream;
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Tjah, det virker vel egentlig meget godt, man skal bare først fjerne blokeringen (den gule bjælke øverst i browservinduet), og så acceptere at ens computer bliver udsat for et ondsindet angreb (såvidt jeg husker, for heller ikke jeg ville nogensinde acceptere den slags, endda så jeg ikke engang finder på at teste det !-)
-- i øvrigt returnerer ovenstående vel bare hele filen, og så kan du vel bare læse den tegn for tegn og så parse den der, hvor du har brug for det ?-)
ADODB må ikke kunne bruges i en browser over nettet - og det har MS heldigvis endelig fundet udaf - så den kan du kun bruge lokalt. Du har ikke - indenfor alm. webteknologier - mulighed for at skrive/læse/behandle indholdet af binære filer :)
Hvad mener du om flg. tankegang: I stedet for at læse fra en binær fil, gemmes data i et BLOB-objekt i en database. Man læser så i stedet bare dette objekt ved et database-opslag.
->olebole: Det er egentlig bare en masse tal, som skal viderebehandles i en grafisk præsentation. I den sammenhæng er det ret langsomt at slå alle tallene op i en database, da databaser er dårlige til sekventielle opslag. Ved at lagre al informationen i én record forestiller jeg mig, at det vil gå hurtigt.
Mit spm. til dig går egentlig på, om jeg efterfølgende vil kunne tilgå data fra JavaScript, givet at jeg har læst BLOB-objektet ind - altså hvordan jeg læser de enkelte bytes i BLOB-objektet fra JavaScript.
->olebole: Tal (flydende tal). Men flydende tal kan konverteres til 8 bytes og derved pakkes helt tæt (og det er et helt væsentligt kriterium her). Læsning af flydende tal gemt på denne måde er standard i Java med f.eks. DataInputStream.readDouble(). Heltal fylder kun det halve, nemlig 4 bytes og læses med DataInputStream.readInt().
Jeg ved ikke, om JavaScript direkte understøtter tilsvarende algoritmer til konvertering mellem flydende tal og bytes, men ellers kan man selv kode sig ud af denne del. Det afgørende er, at man kan læse bytes.
->arne_v: Problemstillingen er her, at jeg overfører en lidt større mængde data til en Web-applikation. I forhold til brugerens ventetid kan f.eks. 5 sek. i forhold til 2. sek. være afgørende for, om man overhovedet gider vente eller surfer videre. Og så er der selvfølgelig lidt sport i at optimere kode/hastighed :-)
du har en web side, på den web side sender noget JavaScript en HTTP request til noget server side kode, den kode returnerer nogle binære floating points, din JavaScript skal så læse dem og gøre noget ved dem ?
og hvorfor bruger du ikke en Java applet fremfor JavaScript ?
->arne_v: Konteksten er, at der er tale om en grafisk applikation med en række "punkter" (i størrelsesordenen 50.000-100.000), som skal læses ind fra en server, idet "punkterne" løbende ændres.
Og ja, det er præcis rigtigt, at min Web-applikation skal kunne læse informationen ind, så JavaScript kan viderebehandle den.
Helt i tråd med hvordan du tænker har jeg lavet en Java-applet, som læser informationen ind og "deler den" med JavaScript. Det virker fint. I øvrigt viser det sig, at indlæsning fra en binær fil (med flydende tal lagret som 8 bytes) foregår ca. 5-10 gange hurtigere (!) end opslag i en (MySQL-)database. Pointen er selvfølgelig, at databaser er dårlige til sekventiel læsning, men i forhold til svartider på en Web er disse tidsforskelle helt afgørende i forhold til bruger-oplevelsen.
Så langt så godt. De folk jeg arbejder sammen med her er lidt interesseret i, om det samme kan lade sig gøre fra en hel tynd klient, altså en klient uden en Java plug-in. Jeg er derfor interesseret i at finde ud af, om JavaScript kan foretage den samme indlæsning fra en binær fil, mens opslag i en database fra JavaScript som en klient-løsning nok ikke er muligt (alternativt kan man bruge PHP som server-løsning).
->arne_v: Du har en pointe, som jeg også har overvejet, men fraveget af flg. grunde: 1. Den færdige grafik ville fylde langt mere end den information jeg læser ind med lang svartid til følge. 2. Informationen, der læses ind, skal kunne bruges uafhængigt af den rene grafiske præsentation til bla. sortering af oplysninger, filtrering osv. Hvad tænker du konkret på, når du skriver "dynamisk JavaScript"? (moderne web-udvikling sker efterhånden så hurtigt med Ajax osv., at man næsten burde lave gratis-aviser over emnet :-))
Faktisk bliver der udgivet masser af 'gratis aviser' om webkodning/-teknologier (web-tutorials og -artikler) - men ligesom med rigtige gratis aviser er deres baggrund langtfra altid særlig troværdig.
AJAX kunne være en mulig løsning i dit tilfælde ;o)
Sådan er det i vores alder, Jes ... det er kun pilsnerne, der skummer - og selv scorer man kun points ... hrmpff! :D
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.