Met het sturen van een grote golf van het internet,

, blz.: //europa.eu.int /comm /is niet langer een probleem is, kunnen we nu naar de pagina 's van compressie.Na twee weken stop je programmering, een netwerk van toepassing is klaar en getest.Alles goed met de klanten, je herinnert je op een vreemde manier "jaws".Behalve één ding.Achter iemand zich afvragen of er is niets wat je kunt doen om vaart te zetten achter de resultaten van de pagina 's met zo veel woorden.Op dat moment, weet je wat je moet hebben en je in je 33.6kb van bewijzen van het tegendeel het modem op het werk van de toepassing van een volledige kopie, maar nog niet alles is verloren.Daar heb je nodig, ter vermindering van de hoeveelheid gegevens toegezonden aan de cliënt en ik praten niet over minder informatie te sturen, maar die gegevens.Dat klinkt leuk.En leren lezen, stomme assumptionssince in dit document zal worden toegevoegd aan de functionele en technische complexiteit van het web van toepassing is, dat je al weet hoe een webapplicatie, met name een perfecte dll, alsmede de toepassing van een dergelijke techniek.Dus ik sla de details, maar wees gerust, ik geef je alle opties, speciaal voor ons de code moet de uitvoering van technische hier, weet je nog, we gaan je goed netwerk van lijn in de SAP, hoe is de magie?Je zou kunnen vragen, hoe is dit mogelijk?Je zou op de een of andere een ZIP - bestand gedownload, maar vond je browser op een interpretatie van de gegevens of tekst als een pagina 's, en dat op je scherm, in al zijn glorie.Geen mooie foto 's, tenminste.Als je in het sturen van de cliënt voor gegevens -, dan zal dat niet vreemd?Niet alleen moet de klant laten weten, met een verschillende aanpak, in het geheim in de gegevens op de server van de cliënt, die gegevens de server reageert.Dat is de inhoud van de code.Kortom, kan je de gegevens van de aanvraag naar de klant, en u moet de enige preventieve maatregelen te nemen om ervoor te zorgen dat de behandeling van de cliënt is weten hoe je de code voor het formaat van de gegevens.Dit is een eenvoudige, omdat de klant vertelde je wat het formaat, het kan, het is een verzoek aan de server, dus het komt allemaal neer op de volgende stappen te nemen, als je wil, als je de codering van de gegevens naar de cliënt:, controleer of de klant kan de behandeling van die soort, Je moet gebruiken, code de gegevens, bij de keuze van de vorm, de codering van gegevens, en weer een nieuwe klant, en vertellen wat je in de vorm van formaat, wat ik gebruik, in welke vorm?We zijn geïnteresseerd in onze gegevens - terug naar de klant.Er is een code vormen van specifiek voor dit doel is opgericht, haar naam is "bloed".Het gebruik van leeglopen die overeenstemt met de aard van de bibliotheek om hoofde van compressie algoritme, compressie algoritme.Je kunt meer lezen over deze bibliotheek: http://www.cdrom.com/pub/infozip/zlib of de inspectie en de beschrijving van het RFCS - algoritme in binaire vorm: HTTP://www.funet. FI /BAR /doc /RFC /RFC1950. En, hoewel je denkt dat je al met hoofde - bibliotheek van de documentatie die nodig is, en jij niet.Althans niet helemaal.Hoewel de installatie met een CD - rom. De opstelling van de documenten in het voorwerp vormen van zlib compressie. En een aantal belangrijke dossiers, ze verbergen we gebruik moeten maken van de details.Maar daarna, maar nu laat?En dat willen we een betere interface bibliotheek, ik kies voor jou mijn eigen hoofde van invoer van eenheid en een link naar de download samengesteld DLL:HTTP://www.winimage. COM /zlibdll /, met betrekking tot de codering van het type "ontmoedigen" door Microsoft Internet Explorer te verwerken en alleen het latere versie (versie 4 en het handvat is zeker, de volgende iets, niet zeker van.Omdat de andere browser zoals Netscape dit niet maar een groot probleem, niet dat ze kunnen omgaan met compressie - type.In dit geval hebben we een netwerk van toepassing is helemaal niet terug met gegevens.Het enige verschil is, zal de gegevens downloaden naar een cliënt.Dit is niet erger dan we vandaag, dus ik denk dat we samen kunnen leven, oké, ik heb het dossier, wat is er nu weer?Nu is het tijd om de bloederige details.Laten we een goed begin van 5 nieuwe projecten in Delphi, kijk waar we zijn.Je moet die eenheid zal downloaden toegevoegd aan dit project.Je hebt gedownload kan worden gelegd op dll C: systeem, system32 catalogus (of je komt overeen met de gids) of op dezelfde lijst als je web van toepassing op het creëren van nieuwe projecten, laten we nog wat actie, echt.De toevoeging van een operatie aan het netwerk module en het creëren van een lege gebeurtenis.Zodat de standaard optreden, want dit is een demonstratie van de procedures, om te proberen onze nieuwe gegevens naar de manier waarop we nu er een leeg actie gebeurtenis laten?Als het nog een code, het laat het doen wat we nodig hebben.Ik zal laten zien dat de volledige gebeurtenis, en dan zal ik de details door. Twebmodule1, procedures,,. Webmodule1webactionitem1action (afzender: TObject; eisen: twebrequest; het antwoord: twebresponse; var,  ,   booleaanse);,,, plaintextstream:VaR,     t - Memory stroom;,     t - Memory stroom, compressedstream:;,  ,   als (clientacceptsdeflate (op verzoek), dan    , begon    ,    , ///////1.Ten eerste, het creëren van een tijdelijke terugkeer van de stroom van gegevens,         plaintextstream:= ("het creëren van tstringstream. -");  ,      , probeer,      ,      . ///////2.Ten tweede, het creëren van een tijdelijke - we gegevens met de             compressedstream:= tmemorystream. De oprichting van een      ;,      , probeer,      ,          . ///////3.- nu,      ...           zlibcompressstream (plaintextstream, compressedstream);  ,              , //...En de terugkeer van het    ,  ,           compressedstream.position:= 0;,                 response.contentstream:= compressedstream;,            , behalve,                 freeandnil (compressedstream);  ,              , verbetering van            ;,,,,, //probeert te vermijden om lekken,        , tot slot,            , //4.Tot slot,   om tijdelijke objecten,           freeandnil (plaintextstream);  ,      , een einde te maken aan de tekst te vernietigen; /eindelijk - object,         response.contenttype:= "text /plain";    ,     response.contentencoding:= "ontmoedigen";    ,     response.statuscode:=,     200;     behandeling: = waar de laatste    ;,,,, ///////- als de cliënt ontvangen gegevens,    , iemand begint,         response.content:= "niet -";    ,     response.contenttype:= "text /plain";    ,     response.statuscode:= 200;,       = waar   behandeling:;,,,  ; /////// , als de cliënt niet aanvaarden - gegevens,,,,,, twebmodule1 /programma 's. Webmodule1actionitem1action, als de heer verklaring, kan bepalen of de cliënt - gegevensEn dan zal - of niet - gegevens naar de klant.Niet - verwerking van de gegevens, zoals je altijd van de verwerking van de gegevens in een web van toepassing, zodat we niet verder over te praten.Als de behandeling met gegevens hebt, gaan we ons concentreren op als een deel van.Kan je zien dat we hier met twee nieuwe programma 's, namelijk clientacceptsdeflate en zlibcompressstream.Ik ga door deze artikelen, we hebben een programma, de noodzaak van een stroom van input, behoud van de datastroom comprimeren schrijven gecomprimeerde datastroom oplevert, kunnen we een beschrijving van deze code, ten eerste: het creëren van een tijdelijke - met een cliënt, we willen terug, en, ten tweede, de beperking van de gegevens, gecomprimeerde gegevens worden naar een nieuwe stroom,,,, nieuwe gegevens en houden ons met gegevens, we gewoon terug naar de cliënt, en, tot slot, en we pakken onze tijdelijke objecten,,,, je kan over deze gebeurtenis van deze lijst met nummer vinden.Dit is de code, omdat we de details verborgen is in twee functies, en we zullen het over, een beetje voorzichtig zijn, als we de reactie tegen de stroom op contentstream eigendom... Met de stroom.Als reactie op de toezending van de gegevens aan de cliënt, de stroom zal worden vrijgelaten, dus we moeten ervoor zorgen dat we niet voorzichtig zijn om het voor jezelf.Een uitzondering op deze zaak en ik neem aan dat de toewijzing van uit de hand gelopen, om de verspreiding van de stroom voor de abnormaal hoge., Frans français?Om te bepalen of de klant weet hoe om te gaan met gecomprimeerde data, we moeten het eerst zien voor onze gegevens.Een typische web verzoek is deze (pseudo - verzoek, deze gegevens kunnen niet 100%), /index.html http: /1, ontvangen: * * * * * * * * * * * * * *, die code /,: gebruiken, leeglopen, de User Agent: mozilla 4 (Microsoft Internet Explorer 5 verenigbaar; NT), zijn we geïnteresseerd in is die code gebruiken woorden:, leeglopen,.Wat is de code van het type dat we de klanten kan aanvaarden, in dit geval, de code is aanvaardbaar formaat - formaat van de gegevens en de te gebruiken.Dat is wat we nodig hebben, dus laten we eens kijken hoe we de toepassing van het netwerk in kennis.Functie ziet er als volgt uit: we moeten schrijven lijkt deze functie:,, de functie, het clientacceptsdeflate (CONST eisen: twebrequest): Bull.,,,,     var, encodingtypes: string, begin  ;,,,,  , ///////krijgt en het formaat van de Lijst van soorten en de eisen van de code.  ,   encodingtypes:= verzoeken. Getfieldbyname ("http_accept_encoding");  ,   encodingtypes:= hoofdletters (stringreplace (encodingtypes, ",", "/" [rfreplaceall]);  ,   encodingtypes:= "/" + stringreplace (encodingtypes, "", "" [rfreplaceall]) + "/"; /////// ,  , terug naar de vlag,     resultaten: = (pos (/verminderen /", encodingtypes)% GT% 0);,,,,, //functie, ik clientacceptsdeflate, waarde te gebruiken formaat, leeglopen, gebruiken, in //lucht /, en kijk danAls het touw /verminderen /, is gevonden op dit.Als je geïnteresseerd bent in andere gebieden van de eisen kan worden gevonden, dan stel ik voor dat je in de http://msdn.microsoft.com/library/psdk/iisref/isre504l.htm uiterlijk en het gebruik van all_http variabelen te onderzoeken welke variabelen in de klant, "parlons sturen.We bepalen de klant kan inderdaad in behandeling - gegevens van alle we wat we nog moeten doen is de werkelijke productie van de gegevens, het is waar, de fantastische, in, zoals eerder vermeld, zullen we het doen in hoofde van compressie - bibliotheek.De code omvat de volgende stappen: vaststelling van een buffer voor de motor en de aanvaarding van gegevens, gegevens, starten van motoren met compressieontsteking,,,,,, die tekst gegevens aan de buffer input -,,,, met inbreng van de buffer -,,,, van de buffer - -,,,, schrijven de herhaling van de gegevens stap 3 - 5 in de input - en de buffer heeft niet meer gegevens zijn geleegd,,,,,,, gesloten met een motor, laten we graven op de details, laten we eens kijken wat we hebben om:,, de procedures, de zlibcompressstream (totaal, de herkomst, De bestemming: t - Memory stroom);,,,     var. Z_s:z_stream;,     RC: gehele getal;,    , ///////1.De input en output, en     sourcebuffer buffer, installatie, [0],... Buffersize-1, byte;    , destinationbuffer:, installatie, [0],... Buffersize-1, byte;,,,,    . ///////2.Klaar voor de registratie van gegevens   hoofde,   z_init_zstream (z_s);  ,   z_s.next_in:= "sourcebuffer;,     z_s.next_out:=" destinationbuffer;,     z_s.avail_out:= zijn;  ,  , ///////2.- motoren met compressieontsteking,     deflateinit2 (z_s, z_best_compression, z_deflated, 9, 15, z_default_strategy); /////// ,  , nu - -,,    , probeer,    ,    , herhaal,            . ///////3.Kijken of we met meer gegevens van motoren met compressieontsteking,             als (z_s.avail_in = 0) en (bron. Positie < bron. De omvang van    ), dan        , begon    ,             z_s.next_in:= ",       sourcebuffer;           z_s.avail_in:= (sourcebuffer, lees de bron. De omvang van de buffer);  ,          , aan het einde, als input van gegevens; ///////  volledig uitgeput,          , //4.Gegevens met             als (z_s.avail_in = 0), dan                 RC:= (z_s deflatie, z_finish),            , andere,                 RC:= (z_s deflatie, z_stream_end,      );      , //- 5.Kijken of we een gecomprimeerde gegevens naar de plaats van bestemming,             als (z_s.avail_out = 0) of (RC = z_stream_end), dan            , begon    ,             bestemming. Writebuffer (destinationbuffer, voorraad - z_s.avail_out);  ,               z_s.avail_out:= buffer,                 z_s.next_out:= "; destinationbuffer;,,,  ;         /////// , als er gegevens kunnen voor te schrijven,             //6.Herhaald totdat de buffer moe,         tot (RC < > z_ok) of ((RC = z_stream_end), (z_s.avail_out = zijn), en (z_s.avail_in = 0),    ); en, tot slot,        , //- 7.Schone motor gegevens,         deflateend (z_s);,,,  ; /////// , poging tot na de liquidatie van de motor,,,,,,, zlibcompressstream /programma 's, voordat je kan deze lijst en de bovengenoemde opmerkingen - wedstrijd.We zijn geen gebruik kunnen maken van de hoofde van de code?Met inbegrip van Delphi is verborgen deflateinit2 conventionele en de verwezenlijking van de eenheid in de noodzakelijke parameters en niet deel aan alle nodige code, om te komen tot een meer gegevens, browsers kan, moeten we de gegevens comprimeren, geen titel.Hoofd van de registratie van een kleine informatie opgenomen, worden opgenomen in de eerste - gegevens, en bijdragen tot de decompressie motor weet hoeveel gegevens als volgt.We kunnen niet door de keuze van de wbitsize parameters van deze titel opgenomen negatieve deflateinit2 programma geschreven.Als gevolg van de browser - normen aan de verwachtingen, niet weet niet hoe om te gaan met deze titel, we hebben het filteren.Omdat we niet rechtstreeks met de code te noemen deflateinit2 hoofde van Delphi en we moeten de hele bibliotheek - bibliotheek - motor met gegevens van de input - buffer kan worden opgenomen in de buffer.Als buffer is vol, we hebben een code nodig om me op te frissen van de bufferzone, en de gegevens in de doelstellingen, in dit geval een stroom.Als het erin geslaagd is alle gegevens uit de inbreng van buffer - als we de code moet zoveel mogelijk data buffer te vullen.- motor voor rusten. Na de test, de voorbereiding van de webapplicatie (zie de uitvoering van een project op de bodem van een kopie van het monster moet je browser - gegevens en de verwerking en een zonder. Gebruik je Internet Explorer 4 /5 en Netscape - als voor de laatste test.- de browser moeten de tekst "in het archief" en een "niet -" verificatie, op basis van de inhoud van de tekst, met een gemiddelde van ongeveer 5 tot 6 maal de compressie (15 à 20% van de oorspronkelijke omvang) zodat het effect is duidelijk groter pagina 's, het pakket Chung, dat is het.De in dit artikel vervatte code en kennis, u moet nu in staat zijn om uw netwerk van toepassing van de gegevens.Hoewel we het perfecte dll creëren, en die theorie moet dezelfde blijven, ook voor de toepassing van de CGI CGI. En ik durf en twee van de functie van het creëren van een eenheid, en van een in dit artikel tot voorbeeld.Je kunt uit de onderstaande lijst te downloaden.Als er geen voorstellen of wil je opmerkingen kan ik in een van de documenten "@ Cintra. Gedownload van: hoofde Dll (auteur, websites), eenheid, invoer, hoofde. Dll,,,, zoals het project (met inbegrip van de functie en de invoer met twee eenheden),,,, maar de eenheid en de twee functies we schrijven,,, en er zijn een paar notities, herinner je je motor niet bepaald gemakkelijk gegevens zelf - of begint niet voor het eten.Dit betekent dat het mogelijk is, door de gegevens van het door het niet kan worden geperst, en misschien zelfs in omvang toeneemt.De tekst en de pagina 's, dit is niet een probleem, maar, maar ik zal het op de foto of FSIM gestuurd naar een paar tests doen.,,, - is in sturen, als de klant wil het downloaden van een heel groot op de website van de webapplicatie belasting, en dan de hele pagina' S in het geheugen van het server - doen. En doe het.Als op de server van het geheugen is een vraag, dan stel ik voor dat de uitvoering in de codering van afgeleide t - Memory stroom -, als je het leest.Wanneer de gegevens worden verzonden, is de druk op de vlucht zijn, en door met de bibliotheek kunnen rechtstreeks naar de klant.- dit kan op m 'n website genaamd streamfilter pakket.,,,,



Previous:
Next Page: