This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
Sunday, 29 February 2004
Bara ett första hugg på detta, använder några klasser som jag använde i ett annat projekt (Jag kommer att tillskriva kompressionskoden senare ... Jag tror att jag fick det från Sharpziplib Ordförande saker - med vissa ändringar - Jag kommer att stoppa kommentarshuvuden tillbaka i för att följa licensierings grejer senare - just nu anser det bara som ett exempel) den faktiska koden för att komprimera visningsstaten är MYCKET enkel:
using System;
using System.Web.UI;
using System.IO;
namespace ViewStateCompression
{
///
/// Summary description for CompressedVSBasePage.
///
public class CompressedVSBasePage :System.Web.UI.Page
{
private LosFormatter _formatter = new LosFormatter();
protected override void SavePageStateToPersistenceMedium(object viewState)
{
StringWriter sw = new StringWriter();
_formatter.Serialize(sw, viewState);
ComDePress cmp = new ComDePress();
string outStr = cmp.Compress(sw.ToString());
Page.RegisterHiddenField("__COMPRESSEDVIEWSTATE",outStr);
}
protected override object LoadPageStateFromPersistenceMedium()
{
string vsString = Request.Form["__COMPRESSEDVIEWSTATE"];
string outStr = new ComDePress().DeCompress(vsString);
return _formatter.Deserialize(outStr);
}
}
}
För att använda den, bara ärva från denna sida i stället för den normala System.Web.UI.Page. Uppenbarligen förlorar du några av de normala Viewstate-funktioner som kryptering - men dessa bör vara lätt att slot tillbaka i...Jag ser för närvarande ganska stora besparingar i ViewState storlek från att använda detta - med BZip2 komprimering - eftersom det är en kod som jag hade ljuga om..., prova det. Alla kommentarer / förslag är, som alltid, uppskattat.
Jag har gjort en testprojekt för att spela med detta , Det är VS.NET 2003, det har allt som krävs (inklusive komprimering grejer).
UPPDATERING: Bara gjort några tester med detta ... som ett exempel, med hjälp av en DataSet befolkad från "Select * Från order" av Northwind DB bunden till en standard DataGrid (Jag valde detta för att vara den fläskigaste möjliga ...), Jag går från 659984 byte i min synhåll ner till 52080 bytes ... en besparing på cirka 92% - vilket jag tycker är ganska imponerande! Jag är säker på att det finns vissa nackdelar med detta (förutom de få extra cykler som krävs för komprimering) - men finns det någon verklig anledning varför MS inte ger en komprimering alternativ för ViewState ut-of-the-box - någon??
UPPDATERING: OK, för dem som har kritiserat koden ... detta är en PROTOTYPE - bara för att testa idén, Jag planerar att spela runt med detta lite mer vid något tillfälle och kommer att titta på inklusive några funky funktioner som Denis Bauers visningStatstittare inbyggda, olika komprimeringssystem, olika kryptering - inklusive otroligt effektiva Två fiskar- kort sagt kommer det att vara en leksak för mig att titta på och förlänga det nuvarande genomförandet av ViewState.
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.