readAsBinaryString sê dat die data moet verteenwoordig as 'n binêre string. waar: elke byte is verteenwoordig deur 'n heelgetal in die reeks 0..255. JavaScript nie die geval is 'n binêre tipe en só het hulle met 'n string met die waarborg dat geen karakter gestoor in die tou buite die omvang 0..255 sou wees. (Hulle kon gegaan het met 'n skikking van getalle in plaas, maar hulle didnt dalk groot Strings is meer geheue-doeltreffend as groot skikkings van getalle, aangesien Nommers swaai-punt.) As jy 'n lêer lees dis meestal teks in 'n westelike script ( meestal Engels, byvoorbeeld), dan is dit string gaan 'n baie soos die teks te kyk. As jy 'n lêer met Unicode-karakters daarin lees, moet jy 'n verskil sien, aangesien JavaScript snare is UTF-16 (besonderhede hieronder) en so 'n paar karakters sal waardes hê bo 255, terwyl 'n binêre string volgens die lêer API spec wouldnt het enige waardes bo 255 (youd het twee individuele karakters vir die twee grepe van die Unicode-kode punt). As jy lees van 'n lêer dis nie die teks glad ( 'n beeld, miskien), waarskynlik sal jy nog steeds 'n baie soortgelyke resultaat tussen readAsText en readAsBinaryString kry. maar met readAsBinaryString jy geweet dat daar 'n poging om 'n multi-byte rye as karakters vertolk gewoond wees. Jy weet nie dat as jy readAsText gebruik. omdat readAsText n enkodering bepaling sal gebruik om te probeer om uit te vind wat die lêers enkodering is en dan te karteer dit van Java UTF-16 snare. Jy kan die effek te sien as jy 'n lêer te skep en stoor dit in iets anders as ASCII of utf-8. (In Windows jy kan dit doen via Notepad die Save As so 'n enkodering drop-down met Unicode daarop, waardeur kyk na die data dit lyk asof hulle bedoel UTF-16 Im seker Mac OS en nix redakteurs het 'n soortgelyke funksie.) Hier 'n bladsy wat die gevolg van die lees van 'n lêer beide maniere dumps: As ek dit met 'n toets 1 2 3 lêer gestoor in UTF-16, hier is die resultate wat ek kry: Soos jy kan sien, readAsText vertolk die karakters en so ek het 13 (die lengte van toetsing 1 2 3), en readAsBinaryString didnt, en so ek het 28 (die twee-byte BOM plus twee grepe vir elke karakter). JavaScript snare is UTF-16 mag lyk soos 'n vreemde verklaring Arent hulle net Unicode Nee, 'n JavaScript string is 'n reeks van UTF-16-kode eenhede sien jy surrogaat pare as twee afsonderlike JavaScript karakters selfs al, in werklikheid, die surrogaat paar as 'n geheel is net een karakter. Sien die skakel vir meer inligting. digitalFresh: Die string is die binêre data. As jy kommentaar, ek gepos 'n voorbeeld wat kan help. JavaScript doesn39t 'n quotbinaryquot tipe en só het hulle met 'n string met die waarborg dat geen karakter gestoor in die tou buite die omvang 0..255 sou wees. (Hulle kon gegaan het met 'n verskeidenheid van getalle in plaas, maar hulle didn39t.) Die voorbeeld toon hoe om die rou waarde van 'n quotcharacterquot van die string te kry. â € T. J. Crowder 30 Junie 10 by 05:09 Morpheus: Omdat hierdie dinge is asynchrone, can39t dit uitsonderings wat jy nodig het om te kyk na die koppelvlak om te sien of there39s paar asynchrone wyse waarop dit verslae foute gooi. En inderdaad, FileReader het onerror hiervoor. As jy 'n lêer te gebruik: 4747 URL, dokument domein is nul, wat geneig is om jou toe te maak uit 'n klomp dinge (Ek don39t weet die besonderhede, ek dit nooit doen nie), ESP. wanneer die SOP kry in dit. I39m redelik seker it39s tot die leser, ten minste vir nou, as die veiligheid deel van die spec is nog voorlopige: w3.org/TR/FileAPI/security-discussion Maar ek wouldn39t verwag dat dit werk. â € T. J. Crowder 5 November 10 by 18:12 Baie dankie TJCrowder - ek verwyder my kommentaar aan ander uit om mislei deur my oorvereenvoudiging, en danksy voorkom vir die opstel van die besonderhede - ek is seker ander sal jou kommentaar te vind veel meer nuttig (en die lees van die artikel is regtig 'n goeie idee, soos jy sê, as 'n mens is mucking rond in hierdie gebied). â € Brian M. Hunt 30 Desember 14 by 14: 16Working met lêers in JavaScript, Deel 2: FileReader Posted at 15 Mei 2012 deur Nicholas C. Zakas In my vorige post. Ek lei met behulp van lêers in JavaScript, spesifiek fokus op hoe om toegang tot lêer voorwerpe te kry. Hierdie voorwerpe bevat lêer metadata net verkry word wanneer die gebruiker kies om óf oplaai n lêer of sleep en laat val 'n lêer op die webblad. Sodra jy lêers het egter die volgende stap is om data te lees van hulle. Die FileReader tik die FileReader tipe het 'n enkele werk: om data te lees van 'n lêer en stoor dit in 'n JavaScript veranderlike. Die API is doelbewus ontwerp soortgelyk aan XMLHttpRequest te wees, aangesien albei laai data vanaf 'n eksterne (buite die leser) hulpbron. Die lees is asynchroon gedoen sodat dit nie die leser te sluit. Daar is verskeie formate wat 'n FileReader kan skep om die lêer data voor te stel, en die formaat moet versoek toe vra die lêer gelees word. Lees word gedoen deur 'n beroep een van hierdie metodes: readAsText () 8211 gee die lêer inhoud as eenvoudig teks readAsBinaryString () 8211 gee die lêer inhoud as 'n string van geënkodeerde binêre data (deprecated 8211 gebruik readAsArrayBuffer () plaas) readAsArrayBuffer () 8211 opgawes die lêer inhoud as 'n ArrayBuffer (goed vir binêre data soos foto's) readAsDataURL () 8211 gee die dossier inhoud as 'n data URL Elkeen van hierdie metodes inisieer 'n lêer te lees soortgelyk aan die XHR object8217s stuur () metode te inisieer 'n HTTP-versoek. As sodanig, moet jy luister vir die vrag gebeurtenis voor die aanvang van om te lees. Die gevolg van die lees is altyd verteenwoordig deur event. target. result. Byvoorbeeld: Hierdie voorbeeld lui eenvoudig die inhoud van 'n lêer en uitgange dit in plain text om die konsole. Die onload hanteerder genoem wanneer die lêer suksesvol gelees terwyl die onerror hanteerder genoem as die lêer wasn8217t lees vir een of ander rede. Die FileReader byvoorbeeld beskikbaar binnekant van die event handler via event. target en it8217s aanbeveel om te gebruik in plaas van direk verwysing na die leser veranderlike. Die gevolg eiendom bevat die dossier inhoud op sukses en fout bevat fout inligting oor die mislukte operasie. Lees data URIs Jy kan dieselfde basiese setup gebruik vir die lees van 'n data URI. Data URIs (soms genoem data URLs) is 'n interessante opsie as jy wil, byvoorbeeld, wys 'n beeld wat net gelees van die skyf. Jy kan dit doen met die volgende kode: Hierdie kode voeg net 'n beeld wat uit skyf gelees in 'n bladsy. Sedert die data URI bevat al van die beeld data, kan dit direk oorgedra word in die src eienskap van 'n beeld en vertoon op die bladsy. Jy kan, afwisselend, laai die beeld en teken dit op 'n ltcanvasgt sowel: Hierdie kode laai die beeld data in 'n nuwe Image voorwerp en dan gebruik dit om die beeld te trek op 'n doek (spesifiseer beide die breedte en hoogte as 100). Data URIs is oor die algemeen gebruik word vir hierdie doel, maar kan gebruik word op enige tipe van die lêer. Die mees algemene gebruik geval vir die lees van 'n lêer in 'n data URI is om die dossier inhoud onmiddellik vertoon op 'n webblad. Lees ArrayBuffers Die ArrayBuffer tipe 1 was die eerste keer as deel van WebGL. 'N ArrayBuffer verteenwoordig 'n eindige aantal grepe wat gebruik kan word om getalle van enige grootte te stoor. Die manier waarop data gelees van 'n ArrayBuffer is deur die gebruik van 'n spesifieke siening, soos Int8Array. wat behandel die onderliggende grepe as 'n versameling van 8-bit onderteken heelgetalle of Float32Array. wat behandel die onderliggende grepe as 'n versameling van 32-bit floating point getalle. Dit is genoem getik skikkings 2. wat jou dwing om te werk met 'n spesifieke numeriese tipe eerder as met 'n tipe van data (soos met tradisionele skikkings). Jy gebruik 'n ArrayBuffer hoofsaaklik wanneer hulle met binêre lêers, om meer fyn beheer oor die data het. It8217s buite die bestek van hierdie pos vir al die ins en outs van ArrayBuffer verduidelik. net besef dat jy 'n lêer in 'n ArrayBuffer redelik maklik as jy dit nodig het kan lees. Jy kan 'n ArrayBuffer direk slaag in 'n XHR object8217s stuur () metode om die rou data te stuur na die bediener (you8217ll het om hierdie inligting uit die versoek lees op die bediener om die lêer te rekonstrueer), so lank as wat die leser ten volle ondersteun XMLHttpRequest Vlak 2 3 (mees onlangse blaaiers, insluitend Internet Explorer 10 en Opera 12). Tot volgende Lees data uit 'n lêer met 'n FileReader is redelik eenvoudig. As jy weet hoe om XMLHttpRequest gebruik. there8217s geen rede waarom jy can8217t ook lees data uit lêers. In die volgende deel van hierdie reeks, you8217ll leer meer oor die gebruik van die FileReader gebeure en verstaan meer oor moontlike foute. Verwysings Disclaimer: Enige standpunte en menings wat in hierdie artikel is dié van Nicholas C. Zakas en doen nie, op enige wyse, weerspieël dié van my werkgewer, kollegas, Wrox Publishing. OReilly Publishing. of enigiemand anders. Ek praat net vir myself, nie vir hulle. Onlangse poste bykomend InformationTable Inhoudsopgawe Lokaliserings Lees lêers in JavaScript gebruik van die lêer APIs Inhoudsopgawe kriteria van die plek Jou blaaier kan nie die funksie te ondersteun in hierdie artikel. Inleiding HTML5 bied uiteindelik 'n standaard manier om interaksie met plaaslike lêers, via die lêer API spesifikasie. As voorbeeld van sy vermoëns, kan die lêer API gebruik word om 'n miniatuur voorbeeld van beelde te skep as theyre gestuur na die bediener, of 'n program toelaat om 'n lêer verwysing red terwyl die gebruiker is op die regte. Daarbenewens, kan jy kliënt-kant logika te gebruik om 'n oplaai mimetype ooreenstem met die lêeruitbreiding verifieer of beperk die grootte van 'n oplaai. Die spec bied verskeie koppelvlakke vir toegang tot lêers van 'n plaaslike lêersisteem: File - 'n individu lêer bied leesalleen inligting soos naam, lêergrootte, mimetype, en 'n verwysing na die lêer handvatsel. File List - 'n skikking soos volgorde van lêer voorwerpe. (Dink ltinput typefile multiplegt of 'n gids van lêers te sleep van die lessenaar). Blob - laat sny 'n lêer in byte wissel. Wanneer dit gebruik word in samewerking met die bogenoemde datastrukture, kan die FileReader koppelvlak gebruik word om 'n lêer deur bekende JavaScript gebeurtenis hantering asynchroon lees. Dus, is dit moontlik om die vordering van 'n lees te monitor, te vang foute, en te bepaal wanneer 'n vrag voltooi. Op baie maniere die API's lyk XMLHttpRequest se geval model. lêers kies van die eerste ding om te doen is seker dat jou leser ten volle ondersteun die lêer API: Natuurlik, as jou program slegs 'n paar van hierdie API sal gebruik, dienooreenkomstig verander hierdie brokkie. Die gebruik van vorm insette vir die kies van die mees eenvoudige manier om 'n lêer te laai is om 'n standaard ltinput typefilegt element gebruik. JavaScript gee die lys van geselekteerde lêer voorwerpe as 'n File List. Hier is 'n voorbeeld wat die veelvuldige kenmerk gebruik om toe te laat kies verskeie lêers gelyktydig: Voorbeeld. Die gebruik van vorm insette vir die kies van. Probeer dit met behulp van sleep en vir die kies van 'n Ander tegniek vir die laai van lêers is inheems sleep en van die lessenaar by die leser. Ons kan die vorige voorbeeld effens verander om drag sluit en drop ondersteuning. Voorbeeld. Met behulp van sleep en vir die kies. Probeer dit Drop lêers hier Nota: Sommige implementeer behandel ltinput typefilegt elemente as moedertaal druppel teikens. Probeer sleep lêers op die veld insette in die vorige voorbeeld. Lees lêers kom nou die pret deel Na youve 'n verwysing lêer verkry, instansieer n FileReader voorwerp om die inhoud daarvan gelees in die geheue. Wanneer die vrag afwerkings, is die lesers onload geval afgedank en sy gevolg kenmerk kan gebruik word om toegang te verkry tot die lêer data. FileReader sluit vier opsies vir 'n lêer te lees, asynchroon: FileReader. readAsBinaryString (BlobFile) - Die resultaat eiendom sal die lêer / druppels data as 'n binêre string bevat. Elke byte is verteenwoordig deur 'n heelgetal in die reeks 0..255. FileReader. readAsText (BlobFile, optencoding) - Die resultaat eiendom sal die lêer / druppels data as 'n teks string bevat. By verstek die string is ontsyfer as UTF-8. Gebruik die parameter opsionele enkodering kan 'n ander formaat spesifiseer. FileReader. readAsDataURL (BlobFile) - Die resultaat eiendom sal die lêer / druppels data geïnkripteer as data URL bevat. FileReader. readAsArrayBuffer (BlobFile) - Die resultaat eiendom sal die lêer / druppels data as 'n ArrayBuffer voorwerp bevat. Sodra een van hierdie lees metodes is 'n beroep op jou FileReader voorwerp, die onloadstart. onprogress. onload. onabort. onerror. en onloadend kan gebruik word om die vordering te monitor. Die onderstaande voorbeeld filters uit beelde uit die seleksie gebruikers, doen 'n beroep reader. readAsDataURL () op die lêer, en lewer 'n miniatuur deur die oprigting van die kenmerk src 'n data URL. Voorbeeld. Lees lêers. Probeer dit probeer hierdie voorbeeld met 'n gids van beelde Sny 'n lêer in sommige gevalle die lees van die hele lêer in die geheue is nie die beste opsie. Byvoorbeeld, sê jy wou 'n asinkroniseer lêer uploader skryf. Een moontlike manier om te bespoedig die oplaai sou wees om te lees en die lêer te stuur in 'n aparte byte verskeidenheid stukke. Die bediener komponent sal dan verantwoordelik wees vir die rekonstruksie van die lêer inhoud in die korrekte volgorde. Gelukkig vir ons, die lêer koppelvlak ondersteun 'n sny metode om dit te gebruik geval ondersteun. Die metode neem 'n aanvang byte as sy eerste argument, eindig byte as sy tweede, en 'n opsie inhoud tipe string as 'n derde. Die volgende voorbeeld demonstreer lees stukke van 'n lêer. Iets opmerklik is dat dit gebruik maak van die onloadend en gaan die evt. target. readyState in plaas van die gebruik van die onload gebeurtenis. Voorbeeld. Sny 'n lêer. Probeer dit Lees grepe: 1-5 6-15 7-8 hele lêer moniteer die vordering van 'n lees Een van die mooi dinge wat ons kry vir gratis by die gebruik van hantering asinkroniseer geval is die vermoë om die vordering van die lêer te monitor nuttige gelees groot lêers, vang foute en uitzoeken wanneer 'n lees voltooi is. Die onloadstart en onprogress gebeure kan gebruik word om die vordering van 'n lees te monitor. Die voorbeeld hieronder toon vertoning van 'n progress bar om die status van 'n lees te monitor. Om die vordering aanwyser in aksie te sien, probeer om 'n groot lêer of een van 'n afgeleë stasie. Voorbeeld. Monitering van die vordering van 'n lees. Probeer dit punt. Om werklik te sien hierdie vordering aanwyser in aksie, probeer om 'n groot lêer of 'n bron op 'n afgeleë stasie. Volgende stepsFileReader. readAsBinaryString () Nie-standaard Hierdie funksie is nie-standaard - en nie op 'n standaarde spoor. Moenie dit op produksie-aanlegte in die gesig staar die Web: dit sal nie werk vir elke gebruiker. Daar kan ook 'n groot onverenigbaarheid tussen die implementering en die gedrag kan verander in die toekoms. Die readAsBinaryString metode word gebruik om te begin lees van die inhoud van die gespesifiseerde Blob of lêer. Wanneer die lees operasie klaar is, raak die readyState gedoen het. en die loadend is geaktiveer. Op daardie tydstip was die gevolg kenmerk bevat die rou binêre data van die lêer. Let daarop dat hierdie metode is nou afgekeur soos per die 12 Julie 2012 Working Konsep van die W3C. Sintaksis Parameters Blob Blob of lêer waaruit om te lees. Voorbeeld Spesifikasies Hierdie metode is verwyder uit die FileAPI standaard. FileReader. readAsArrayBuffer () moet gebruik word instead. File API Abstract Hierdie spesifikasie bied 'n API vir wat lêer voorwerpe in web programme, sowel as programmaties hulle te kies en toegang tot hul data. Dit sluit in: 'n File List koppelvlak, wat 'n verskeidenheid van individueel gekies lêers van die onderliggende stelsel verteenwoordig. Die gebruikerskoppelvlak vir keuring kan via ltinput typefilegt word opgeroep. maw wanneer die insette element is in die lêer oplaai staat HTML. 'N Blob koppelvlak, wat onveranderlike rou binêre data verteenwoordig, en verleen toegang tot reekse van grepe binne die Blob voorwerp as 'n afsonderlike Blob. 'N lêer koppelvlak, wat leesalleen inligting sluit eienskappe van 'n lêer soos sy naam en die datum van die laaste wysiging (op skyf) van die lêer. A FileReader koppelvlak, watter metodes bied om 'n lêer of 'n blob lees. en 'n gebeurtenis model om die resultate te verkry van hierdie lees. 'N URL skema vir gebruik met binêre data soos lêers, sodat hulle kan verwys binne web programme. Daarbenewens hierdie spesifikasie definieer voorwerpe te gebruik binne gestruktureerde web aansoeke vir die sinchrone lees van lêers. Die afdeling oor Vereistes en Gebruik Gevalle req dek die motivering agter hierdie spesifikasie. Dit API is ontwerp om gebruik te word in samewerking met ander API's en elemente op die web platform, veral: XMLHttpRequest (bv met 'n oorlaaide stuur () metode vir lêer of Blob argumente), postMessage. Dataverkeer (deel van die sleep en API omskryf in HTML) en Web werkers. Daarbenewens moet dit moontlik wees om 'n lys van lêers programmaties verkry vanaf die insette element wanneer dit in die lêer oplaai staat HTML. Hierdie soort gedrag word gedefinieer in die toepaslike geaffilieer spesifikasies. Status van hierdie dokument Hierdie artikel beskryf die status van hierdie dokument ten tyde van die publikasie. Ander dokumente kan hierdie dokument vervang. 'N Lys van die huidige W3C publikasies en die nuutste weergawe van hierdie tegniese verslag kan gevind word in die W3C tegniese verslae indeks www. w3.org/TR/. As jy die kommentaar op hierdie spec, stuur dit aan public-webappsw3.org oor 'n onderwerp: voorvoegsel van FileAPI. Sien Bugzilla vir hierdie spesifikasies oop foute. Hierdie dokument is gepubliseer deur die Web Aansoeke Werkgroep as 'n werkende Konsep. Hierdie dokument het ten doel om 'n W3C Aanbeveling geword. As jy wil kommentaar oor hierdie dokument maak, stuur hulle na public-webappsw3.org (skryf. Argiewe). Alle kommentaar is welkom. Publikasie as 'n werkende Konsep nie endossement deur die W3C Lidmaatskap impliseer. Dit is 'n konsepdokument en mag opgedateer, vervang of uitgedien deur ander dokumente te eniger tyd. Dit is onvanpas om hierdie dokument as anders as die werk aan die gang te haal. Hierdie dokument is opgestel deur 'n groep wat onder die 5 Februarie 2004 W3C Patent Policy. W3C handhaaf 'n openbare lys van 'n patent onthullings gemaak in verband met die aflewerbares van die groep wat bladsy bevat ook instruksies vir die bekendmaking n patent. 'N individu wat werklike kennis van 'n patent wat die individu glo, het bevat noodsaaklike eis (e) moet die inligting in ooreenstemming met artikel 6 van die W3C Patent Policy openbaar. Hierdie dokument word deur die 1 Augustus 2014 W3C proses dokument. Inhoudsopgawe 1. Inleiding Hierdie afdeling is insiggewend. Web aansoeke moet die vermoë om so wyd as moontlik te manipuleer n verskeidenheid van die gebruiker se toevoer, insluitend lêers wat 'n gebruiker kan wens om te laai na 'n afgeleë bediener of te manipuleer in 'n ryk web-program het. Hierdie spesifikasie definieer die basiese vertoë vir lêers, lyste van lêers, foute wat deur toegang tot lêers en programmatiese maniere om lêers te lees. Daarbenewens hierdie spesifikasie definieer ook 'n koppelvlak wat rou data wat asynchroon verwerk kan word op die hoof draad van wat voldoen gebruiker agente verteenwoordig. Die koppelvlakke en API omskryf in hierdie spesifikasie kan gebruik word met ander koppelvlakke en APIs blootgestel aan die web platform. Die lêer koppelvlak verteenwoordig lêer data tipies verkry vanaf die onderliggende (OS) lêerstelsel, en die Blob koppelvlak (Binary Large Object - 'n naam wat oorspronklik ingestel om web API in Google Gears) verteenwoordig onveranderlike rou data. Lêer of Blob lees moet asynchroon gebeur op die hoof draad, met 'n opsionele sinchrone API gebruik binne gestruktureerde web programme. 'N asinchrone API vir die lees van lêers verhoed blokkeer en UI vries op 'n gebruiker agente belangrikste draad. Hierdie spesifikasie definieer 'n asinchrone API gebaseer op 'n gebeurtenis model om te lees en toegang tot 'n lêer of Blob se data. A FileReader voorwerp bied asynchrone Lees metodes om toegang te verkry dat lêers data deur event handler eienskappe en die afvuur van gebeure. Die gebruik van gebeure en gebeurtenis hanteerders laat aparte kode blokke van die vermoë om die vordering van die lees (wat is veral nuttig vir afgeleë dryf of gemonteer dryf, waar toegang lêer prestasie kan wissel van plaaslike dryf) en fout toestande wat mag ontstaan tydens lees te monitor van 'n lêer. 'N Voorbeeld sal illustratiewe wees. In die voorbeeld hieronder, anders kode blokke te hanteer vordering, fout, en sukses voorwaardes. 2. Conformance Alles in hierdie spesifikasie is normatiewe behalwe vir voorbeelde en artikels gemerk as insiggewend. Die Sleutelwoorde moet optree, moet nie benodig word nie, is, mag, aanbeveel, mag en opsioneel in hierdie dokument is om geïnterpreteer soos beskryf in Sleutel woorde vir gebruik in RFCs te Dui Vereiste vlakke RFC2119. Die volgende conformance klasse word bepaal deur hierdie spesifikasie: voldoen gebruiker agent 'n user-agent word beskou as 'n voldoen gebruiker agent wees indien dit voldoen aan al die moet -, nodig nie - en hulle sal kriteria in hierdie spesifikasie wat van toepassing is op die implementering-vlak. Hierdie spesifikasie gebruik beide die terme wat voldoen gebruiker agent en user-agent om te verwys na die produk klas. Gebruikers agente kan algoritmes te implementeer in hierdie spesifikasies in enige gewenste manier, so lank as wat die eindresultaat is ononderskeibaar van die resultaat wat verkry sal word uit die spesifikasies algoritmes. Gebruikers agente wat ECMAScript gebruik om die APIs omskryf in hierdie spesifikasie te implementeer moet hulle uit te voer in 'n wyse wat in ooreenstemming met die ECMAScript Bindings omskryf in die Web IDL spesifikasie WEBIDL as hierdie spesifikasie gebruik dat spesifikasie en terminologie. 3. Afhanklikhede Hierdie spesifikasie is afhanklik van onderliggende spesifikasies. A voldoen gebruiker agent moet ten minste die subset van die funksies gedefinieer in DOM4 dat hierdie spesifikasie staatmaak op in die besonder te ondersteun, moet dit EventTarget ondersteun. DOM4 A voldoen gebruiker agent moet die Progress Events spesifikasie ondersteun. toegang tot die inligting op lees bedrywighede geaktiveer via Progress Events. ProgressEvents A voldoen gebruiker agent moet ten minste die subset van die funksies gedefinieer in HTML wat hierdie spesifikasie staatmaak op in die besonder te ondersteun, moet dit geval lusse en event handler eienskappe ondersteun. HTML A voldoen gebruiker agent moet ook 'n konformerende implementering van die IDL fragmente in hierdie spesifikasie wees, soos beskryf in die Web IDL spesifikasie. WebIDL Dele van hierdie spesifikasie staatmaak op die web Werkers spesifikasie vir daardie dele van hierdie spesifikasie, die Web Werkers spesifikasie is 'n normatiewe afhanklikheid. Werkers 4. Terminologie 4.1 Bepalings Die bepalings en algoritmes dokument. los dokument opruim stappe. event handler skryf. event handler tipe gebeurtenis. effektiewe script oorsprong. gevestigde instellings beswaar. gebeurtenis loops. taak. taak bron. URL. globale lys script opruim werk. globale script opruim. ry 'n taak. UTF-8. UTF-16. gestruktureerde kloon. versamel 'n reeks van karakters en die omskakeling van 'n string te ASCII klein is, soos gedefinieer deur die HTML spesifikasie HTML. Die terme oorsprong en dieselfde oorsprong is, soos gedefinieer deur die Web Oorsprong Konsep spesifikasie oorsprong. Wanneer hierdie spesifikasie sê om 'n algoritme te beëindig moet die gebruiker agent die algoritme te beëindig nadat die stap dit op, en terug te keer daaruit. Asynchrone Lees metodes gedefinieer in hierdie spesifikasie kan terugkeer voordat die algoritme betrokke beëindig, en kan deur 'n Staak () oproep beëindig word. Die term gooi in hierdie spesifikasie, soos dit betrekking het op uitsonderings, word soos omskryf in die DOM4 spesifikasie DOM4. Die term byte in hierdie spesifikasie gebruik soos uiteengesit in die Encoding spesifikasie Encoding spesifikasie. Die term stuk in hierdie spesifikasie gebruik soos uiteengesit in die strome spesifikasie Strome spesifikasie. Die term konteks voorwerp in hierdie spesifikasie gebruik soos uiteengesit in die DOM4 spesifikasie DOM4. Die terme URL. relatiewe URL. basis-URL. URL ontleder. basiese URL Parser. skema. gasheer. relatiewe skema. skema data. en fragment is soos gedefinieer deur die WHATWG URL spesifikasie URL. Die terme te vra. reaksie. liggaam en kruis-oorsprong versoek is soos omskryf in die WHATWG haal spesifikasie haal spesifikasie. Die term Unix Epog word in hierdie spesifikasie te verwys na die tyd 00:00:00 UTC op 1 Januarie 1970 (of 1970-01-01T00: 00: 00Z ISO 8601) dit is dieselfde tyd wat konseptueel 0 in ECMA - 262 ECMA-262. Die algoritmes en stappe in hierdie spesifikasie gebruik die volgende wiskundige bewerkings: Max (a, b) gee terug Die maksimum van a en b, en is altyd uitgevoer op heelgetalle as hulle omskryf in WebIDL WebIDL in die geval van Max (6,4) die resultaat is 6. Hierdie operasie is ook omskryf in ECMAScript ECMA-262. min (a, b) gee terug Die minimum van a en b, en is altyd uitgevoer op heelgetalle as hulle omskryf in WebIDL WebIDL in die geval van min (6,4) die gevolg is 4. Hierdie operasie is ook omskryf in ECMAScript ECMA -262. Wiskundige vergelykings soos LT (minder as), (minder as of gelyk aan) en GT (groter as) is as in ECMAScript ECMA-262. 5. Die Blob Interface en binêre data 'n blob voorwerp verwys na 'n byte volgorde, en het 'n grootte kenmerk wat die totale aantal grepe in die byte volgorde, en 'n soort kenmerk, wat is 'n ASCII geïnkripteer string in kleinletters verteenwoordig die media tipe van die byte volgorde. 'N Blob moet 'n leesbaarheid staat het. Dit is een van oop of toe. 'N Blob wat verwys na 'n byte volgorde, insluitend een van 0 grepe, word gesê dat dit in die geopende leesbaarheid staat. 'N Blob word gesê dat dit gesluit as sy naby metode is genoem. 'N Blob wat geslote is gesê dat dit in die geslote leesbaarheid staat. Elke Blob moet 'n interne oorsig staat het. wat aanvanklik gestel moet word om die toestand van die onderliggende stoor, indien enige sodanige onderliggende stoor bestaan, en moet bewaar word deur gestruktureerde kloon. Verdere normatiewe definisie van momentopname staat kan gevind word vir lêers. 5.1. Vervaardigerskampioenskap Blob () konstruktor Jy kan op met 'n nul of meer parameters. Wanneer die Blob () konstruktor uitgeroep is, moet die gebruiker agente die volgende Blob konstruktor stappe uit te voer: As drie maande met 'n nul parameters, terug 'n nuwe Blob voorwerp met sy leesbaarheid staat stel om oopgemaak word. bestaande uit 0 grepe, met grootte stel om 0, en met tipe stel om die leë string. Andersins, is die konstruktor opgeroep met 'n blobParts volgorde. Laat 'n wees dat volgorde. Laat grepe wees 'n leë reeks grepe. Laat 'n e lengte lengte wees. Vir 0 i LT lengte. herhaal die volgende stappe: Laat element wees die i de element van 'n. As element is 'n DOMString. hardloop die volgende substeps: Laat s die gevolg van die omskakeling element om 'n reeks van Unicode-karakters Unicode met behulp van die algoritme om dit te doen in WebIDL WebIDL wees. Enkodeer s as UTF-8 en voeg die gevolglike grepe om grepe. Die algoritme van WebIDL WebIDL vervang ongeëwenaard surrogate in 'n ongeldige UTF-16 string met UFFFD vervanging karakters. Scenario bestaan wanneer die Blob konstruktor kan lei tot 'n verlies van data as gevolg van verlore of roer karakter rye. As element is 'n ArrayBufferView TypedArrays, skakel dit om na 'n reeks van byteLength grepe uit die onderliggende ArrayBuffer. begin by die byteOffset van die ArrayBufferView TypedArrays, en voeg die grepe om grepe. As element is 'n ArrayBuffer TypedArrays, skakel dit om na 'n reeks van byteLength grepe, en voeg die grepe om grepe. As element is 'n blob. voeg die grepe wat dit verteenwoordig te grepe. Die tipe van die Blob verskeidenheid element is geïgnoreer. As die tipe lid van die opsionele opsies argument verskaf en is nie die leë string, hardloop die volgende sub-stappe: Laat t die tipe woordeboek lid wees. As t enige karakters buite die omvang u0020 om U007E bevat, opgestel t dan na die leë string en teruggegaan uit hierdie substeps. Skakel elke karakter in t om kleinletters gebruik van die omskakeling van 'n string te klein algoritme WebIDL ASCII. Terug n blob voorwerp met sy leesbaarheid staat stel om oopgemaak word. verwys na grepe as sy verwante byte volgorde, met die grootte stel om die lengte van grepe. en sy soort stel om die waarde van t uit die substeps hierbo. Die tipe t van 'n Blob word beskou as 'n parsable MIME-tipe as die ASCII geïnkripteer string wat die Blob tipe voorwerpe, wanneer omgeskakel word na 'n byte volgorde, nie ongedefinieerde terugkeer vir die parse MIME-tipe algoritme MIMESNIFF. 5.1.1. Constructor Parameters Die konstruktor Blob () Jy kan op die onderstaande parameters: A blobParts volgorde waarin 'n aantal van die volgende tipes elemente neem, en in enige volgorde: 'n opsionele BlobPropertyBag wat een lid neem: tipe. die-ASCII geïnkripteer string in kleinletters verteenwoordig die media tipe van die Blob. Normatiewe voorwaardes vir hierdie lid word in die Blob konstruktor stappe. Voorbeelde van konstruktor gebruik volg. 5.2. Eienskappe gee die grootte van die byte volgorde aantal grepe. Op kry, wat voldoen gebruiker agente moet die totale aantal grepe wat gelees kan word deur 'n FileReader of FileReaderSync voorwerp, of 0 as die Blob het geen grepe te lees terugkeer. As die Blob het 'n leesbaarheid toestand van GESLUIT dan grootte moet terugkeer 0. Die-ASCII geïnkripteer string in kleinletters verteenwoordig die media tipe van die Blob. Op kry, gebruiker agente moet die tipe van 'n blob as-ASCII geïnkripteer string terug in kleinletters, soos dat wanneer dit omgeskakel word na 'n byte volgorde, dit is 'n parsable MIME-tipe MIMESNIFF, of die leë string - 0 grepe - - indien die tipe kan nie bepaal word nie. Die tipe kenmerk kan deur die web-program self deur konstruktor aanroeping en deur die sny oproep in sulke gevalle in te lê, verder normatiewe voorwaardes vir hierdie kenmerk is in die Blob konstruktor stappe. die lêer Constructor stappe. en die sny metode algoritme onderskeidelik. Gebruikers agente kan ook die tipe van 'n blob bepaal. veral as die byte volgorde is van 'n on-skyf lêer in hierdie geval, verdere normatiewe toestande in die lêer tipe riglyne .. Die boolean waarde wat aandui of die Blob is in die geslote leesbaarheid staat. Op kry, moet die gebruiker agente valse terugkeer as die Blob is in die geopende leesbaarheid staat. en waar as die Blob is in die geslote leesbaarheid staat as gevolg van die noue metode genoem. 5.3. Metodes en parameters 5.3.1. Die sny metode die sny metode gee 'n nuwe Blob voorwerp met grepe wat wissel van die opsionele begin parameter Tot maar nie insluitend die opsionele einde parameter, en met 'n soort kenmerk wat is die waarde van die opsionele contentType parameter. Dit moet soos volg optree: Kom O wees die Blob konteks voorwerp waarop die skyfie metode word genoem. Die opsionele begin parameter is nie 'n waarde vir die begin punt van 'n sny oproep, en moet as 'n byte-orde posisie behandel, met die nulde posisie wat die eerste byte. Gebruikers agente moet sny verwerk met begin genormaliseer volgens die volgende: As die opsionele begin parameter nie gebruik word as 'n parameter toe die maak van hierdie oproep, laat relativeStart wees 0. As begin negatief is, laat relativeStart wees Max ((grootte begin), 0 ). Anders, laat relativeStart wees min (begin, grootte). Die opsionele einde parameter is nie 'n waarde vir die eindpunt van 'n sny oproep. Gebruikers agente moet sny met einde genormaliseer volgens die volgende proses: As die opsionele einde parameter nie gebruik word as 'n parameter toe die maak van hierdie oproep, laat relativeEnd wees grootte. As einde negatief is, laat relativeEnd wees Max ((grootte einde), 0) Else, laat relativeEnd wees min (einde, grootte) Die opsionele contentType parameter word gebruik om die ASCII geïnkripteer string in kleinletters verteenwoordig die media tipe van die stel Blob. 6.2. 7.1. 8.2.
No comments:
Post a Comment