selectpdf c# : Bookmark pdf reader software SDK cloud windows wpf azure class dive_into_html515-part1529

Cookies are included with every HTTP request, thereby slowing down your web
application by needlessly transmiing the same data over and over
Cookies are included with every HTTP request, thereby sending data unencrypted over
the internet (unless your entire web application is served over SSL)
Cookies are limited to about 4 KB of data — enough to slow down your application (see
above), but not enough to be terribly useful
What we really want is
a lot of storage space
on the client
that persists beyond a page refresh
and isn’t transmied to the server
Before HTML5, all aempts to aieve this were ultimately unsatisfactory in different ways.
A BRIEF HISTORY OF LOCAL
A BRIEF HISTORY OF LOCAL
STORAGE HACKS BEFORE HTML5
STORAGE HACKS BEFORE HTML5
In the beginning, there was only Internet Explorer. Or at least, that’s what Microso wanted
the world to think. To that end, as part of the 
First Great Browser Wars, Microso invented a
great many things and included them in their browser-to-end-all-browser-wars, Internet
Explorer. One of these things was called 
DHTML Behaviors, and one of these behaviors was
called 
userData.
u s e r r D D a t a
allows web pages to store up to 64 KB of data per domain, in a hierarical XML-
based structure. (Trusted domains, su as intranet sites, can store 10 times that amount. And
hey, 
640 KB ought to be enough for anybody.) IE does not present any form of permissions
dialog, and there is no allowance for increasing the amount of storage available.
In 2002, Adobe introduced a feature in Flash 6 that gained the unfortunate and misleading
diveintohtml5.org
THE PAST, PRESENT & FUTURE OF LOCAL STORAGE FOR WEB APPLICATIONS
Bookmark pdf reader - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
add bookmark pdf; how to add bookmarks to a pdf
Bookmark pdf reader - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
editing bookmarks in pdf; bookmark page in pdf
name of “Flash cookies.” Within the Flash environment, the feature is properly known as 
Local
Shared Objects. Briefly, it allows Flash objects to store up to 100 KB of data per domain. Brad
Neuberg developed an early prototype of a Flash-to-JavaScript bridge called 
AMASS (AJAX
Massive Storage System), but it was limited by some of Flash’s design quirks. By 2006, with
the advent of 
ExternalInterface in Flash 8, accessing LSOs from JavaScript became an order of
magnitude easier and faster. Brad rewrote AMASS and integrated it into the popular 
Dojo
Toolkit under the moniker 
d o o j j o x . . s s t o r r a a g e
. Flash gives ea domain 100 KB of storage “for
free.” Beyond that, it prompts the user for ea order of magnitude increase in data storage (1
Mb, 10 Mb, and so on).
In 2007, Google launed 
Gears, an open source browser plugin aimed at providing additional
capabilities in browsers. (We’ve previously discussed Gears in the context of 
providing a
geolocation API in Internet Explorer. Gears provides 
an API to an embedded SQL database
based on 
SQLite. Aer obtaining permission from the user once, Gears can store unlimited
amounts of data per domain in SQL database tables.
In the meantime, Brad Neuberg and others continued to ha away on 
d o j o x x . . s t o o r r a g e
to
provide a unified interface to all these different plugins and APIs. By 2009, 
d o o j o x . . s s t o r r a a g e
could auto-detect (and provide a unified interface on top of) Adobe Flash, Gears, Adobe AIR,
and an early prototype of HTML5 storage that was only implemented in older versions of
Firefox.
As you survey these solutions, a paern emerges: all of them are either specific to a single
browser, or reliant on a third-party plugin. Despite heroic efforts to paper over the differences
(in 
d o o j j o x . . s s t o r r a a g e
), they all expose radically different interfaces, have different storage
limitations, and present different user experiences. So this is the problem that HTML5 set out
to solve: to provide a standardized API, implemented natively and consistently in multiple
browsers, without having to rely on third-party plugins.
INTRODUCING HTML5 STORAGE
INTRODUCING HTML5 STORAGE
diveintohtml5.org
THE PAST, PRESENT & FUTURE OF LOCAL STORAGE FOR WEB APPLICATIONS
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
XImage.Barcode Reader. XImage.Barcode Generator. pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET
bookmarks pdf file; how to bookmark a page in pdf document
C# PDF Library SDK to view, edit, convert, process PDF file for C#
RasterEdge PDF SDK for .NET package offers robust APIs for editing PDF document hyperlink (url) and quick navigation link in PDF bookmark.
add bookmarks to pdf file; adding bookmarks to pdf document
What I will refer to as “HTML5 Storage” is a specification named 
Web Storage, whi was at
one time part of the HTML5 specification proper, but was split out into its own specification
for uninteresting political reasons. Certain browser vendors also refer to it as “Local Storage”
or “DOM Storage.” e naming situation is made even more complicated by some related,
similarly-named, emerging standards that I’ll discuss later in this apter.
So what is HTML5 Storage? Simply put, it’s a way for web pages to store named key/value
pairs locally, within the client web browser. Like cookies, this data persists even aer you
navigate away from the web site, close your browser tab, exit your browser, or what have
you. Unlike cookies, this data is never transmied to the remote web server (unless you go
out of your way to send it manually). Unlike 
all previous aempts at providing persistent
local storage, it is implemented natively in web browsers, so it is available even when third-
party browser plugins are not.
Whi browsers? Well, the latest version of prey mu every browser supports  HTML5
Storage… even Internet Explorer!
HTML5
HTML5 STORAGE SUPPORT
STORAGE SUPPORT
IE
FIREFOX
FIREFOX
SAFARI
SAFARI
CHROME
CHROME
OPERA
OPERA
IPHONE
IPHONE
ANDROID
ANDROID
8.0+
3.5+
4.0+
4.0+
10.5+
2.0+
2.0+
From your JavaScript code, you’ll access HTML5 Storage through the 
l o o c a l l S S t o r a a g g e
object
on the global 
w i n n d d o w
object. Before you can use it, you should 
detect whether the browser
supports it.
check for 
check for HTML5
HTML5 Storage
Storage
f u n n c c t i o o n  s s u p p p p o r t t s s _ h t t m m l 5 _ s s t t o r a a g g e ( )  {
t r y  {
r e t t u u r n  ' ' l o c a a l l S t o o r r a g e e '  i i n  w w i n d d o o w  & &  w w i n n d d o w [ ' ' l o c a a l l S t o o r r a g e ' ' ] !==
n u l l l l ;
} c c a a t c h  ( ( e )  {
r e t t u u r n  f f a l s e e ;
}
}
diveintohtml5.org
THE PAST, PRESENT & FUTURE OF LOCAL STORAGE FOR WEB APPLICATIONS
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Split PDF document by PDF bookmark and outlines in VB.NET. Independent component for splitting PDF document in preview without using external PDF control.
convert word to pdf with bookmarks; create bookmark pdf
C# PDF - Read Barcode on PDF in C#.NET
pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET C#.NET PDF Barcode Reader & Scanner
creating bookmarks in pdf documents; adding bookmarks to pdf reader
Instead of writing this function yourself, you can use 
Modernizr to detect support for HTML5
Storage.
i f  (
Mo d d e e r n i z r r . l o o c c a l s s t t o r a g g e )  {
// w w i n d d o o w . l o o c c a l S S t t o r a a g g e  i i s  a a va a i i l a bl l e e !
} e e l l s e  {
// n n o  n n a a t i ve  s s u p p p p o r t  f f o r  H TML 5  s s t o o r r a g e  : (
// m m a y be  t t r y  d d o j j o o x . s s t t o r a g g e  o o r  a  t t h h i i r d -p a r t t y  s s o l l u u t i o o n
}
USING HTML5 STORAGE
USING HTML5 STORAGE
HTML5 Storage is based on named key/value pairs. You store data based on a named key,
then you can retrieve that data with the same key. e named key is a string. e data can be
any type supported by JavaScript, including strings, Booleans, integers, or floats. However, the
data is actually stored as a string. If you are storing and retrieving anything other than
strings, you will need to use functions like 
p a r r s s e In n t t ( )
or 
p a r r s s e Fl o o a a t ( )
to coerce your
retrieved data into the expected JavaScript datatype.
i n t t e e r f a a c c e  S S t t o o r a g g e  {
g e t t t t e r  a a n y  g g e e t It t e e m ( i i n  D D OM S S t r i i n n g  ke e y y ) ;
s e t t t t e r  c c r e a t t o o r  vo o i d  s s e t It t e e m ( i i n  D D OM S S t r i i n n g  ke e y , i i n  a a n n y  d d a t t a a ) ;
};
Calling 
s e t t It t e m m ( ( )
with a named key that already exists will silently overwrite the previous
value. Calling 
g e e t t It e e m m ( )
with a non-existent key will return 
n u u l l
rather than throw an
exception.
Like other JavaScript objects, you can treat the 
l o c a a l l S t o o r r a g e
object as an associative array.
Instead of using the 
g e e t t It e m m ( ( )
and 
s e t t It t e m m ( ( )
methods, you can simply use square
braets. For example, this snippet of code:
diveintohtml5.org
THE PAST, PRESENT & FUTURE OF LOCAL STORAGE FOR WEB APPLICATIONS
C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
Support to take notes on adobe PDF file without adobe reader installed. Support to add text, text box, text field and crop marks to PDF document.
bookmarks in pdf reader; bookmarks in pdf from word
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
key. Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Powerful components
bookmark pdf in preview; edit pdf bookmarks
va r  f f o o  = l l o o c c a l S S t t o r a a g g e .
g e e t t It e e m ( ( "ba r ") ;
// . . . .
l o c c a a l S t t o o r a g e e .
s e t t It t e m m ( ( "ba r r ", f f o o o ) ;
…could be rewrien to use square braet syntax instead:
va r  f f o o  = l l o o c c a l S S t t o r a a g g e
["ba r "] ;
// . . . .
l o c c a a l S t t o o r a g e
["ba r r "] = f f o o o ;
ere are also methods for removing the value for a given named key, and clearing the entire
storage area (that is, deleting all the keys and values at once).
i n t t e e r f a a c c e  S S t t o o r a g g e  {
d e l l e e t e r  vo o i d  r r e m m o o ve It e m ( i i n  D D OMS t r i i n n g  ke e y ) ;
vo i i d  c c l l e e a r ( ) ) ;
};
Calling 
r e m m o o ve It e m ( ( )
with a non-existent key will do nothing.
Finally, there is a property to get the total number of values in the storage area, and to iterate
through all of the keys by index (to get the name of ea key).
i n t t e e r f a a c c e  S S t t o o r a g g e  {
r e a a d d o n l l y  a a t t t r r i bu u t t e  u u n n s i g n n e e d  l l o o n g  l l e e n g t t h h ;
g e t t t t e r  D D OMS t t r r i n g  ke e y y ( ( i n  u u n n s i g g n n e d  l l o o n g  i i n d e e x x ) ;
};
If you call 
ke y ( )
with an index that is not between 0–(
l e e n n g t h
-1), the function will return
n u l l
.
TRACKING CHANGES TO THE HTML5 STORAGE AREA
TRACKING CHANGES TO THE HTML5 STORAGE AREA
If you want to keep tra programmatically of when the storage area anges, you can trap
the 
s t t o r a g g e
event. e 
s t o o r r a g e
event is fired on the 
w i i n n d o w
object whenever
diveintohtml5.org
THE PAST, PRESENT & FUTURE OF LOCAL STORAGE FOR WEB APPLICATIONS
C# HTML5 PDF Viewer SDK to view, annotate, create and convert PDF
A powerful PDF reader allows C# users to view PDF, annotate PDF file, create PDF from other file formats, convert PDF document in .NET framework class.
bookmarks in pdf files; excel pdf bookmarks
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
Able to get word count in PDF pages. Change Word hyperlink to PDF hyperlink and bookmark. Free online Word to PDF converter without email.
how to add a bookmark in pdf; add bookmark pdf file
s e t It e m ( ( )
r e m m o o ve It e m ( )
, or 
c l l e a r r ( ( )
is called and actually anges something. For
example, if you set an item to its existing value or call 
c l e e a a r ( )
when there are no named
keys, the 
s t t o r a g g e
event will not fire, because nothing actually anged in the storage area.
e 
s t t o r a a g g e
event is supported everywhere the 
l o c c a a l S t t o o r a g g e
object is supported, whi
includes Internet Explorer 8. IE 8 does not support the W3C standard 
a d d d Eve e n n t L i i s s t e n n e e r
(although that will finally be added in IE 9). erefore, to hook the 
s t o o r r a g e
event, you’ll
need to e whi event meanism the browser supports. (If you’ve done this before with
other events, you can skip to the end of this section. Trapping the 
s t o r r a a g e
event works the
same as every other event you’ve ever trapped. If you prefer to use jery or some other
JavaScript library to register your event handlers, you can do that with the 
s t t o o r a g g e
event,
too.)
i f  ( ( w i n n d d o w . a a d d d Eve n t L i i s t e n n e e r )  {
w i n n d d o w . . a a d d Eve n t L i i s t e e n n e r ( "s t o r r a a g e ", h h a n n d d l e _ _ s s t o r a a g g e , f f a l s e e ) ) ;
} e e l l s e  {
w i n n d d o w . . a a t t a c c h h Eve e n n t ( "o n s t o o r r a g e e ", h h a a n n d l e e _ _ s t o o r r a g e ) ) ;
};
e 
h a a n d l l e e _ s t o o r r a g e
callba function will be called with a 
S t t o r a g g e e Eve e n n t
object, except
in Internet Explorer where the event object is stored in 
w i n n d d o w . . e e ve n t
.
f u n n c c t i o o n  h h a n n d d l e _ _ s s t o r r a a g e ( e e )  {
i f  ( ( !e )  {  e  = w w i i n n d o w w . . e ve n n t t ; }
}
At this point, the variable 
e
will be a 
S t t o o r a g g e e Eve n n t
object, whi has the following useful
properties.
STORAGEEVENT OBJECT
STORAGEEVENT OBJECT
PROPERTY
PROPERTYTYPE
TYPEDESCRIPTION
DESCRIPTION
ke y
string the named key that was added, removed, or modified
o l d d Va a l u e
any the previous value (now overwrien), or 
n u u l l l
if a new item was added
n e w w Va a l u e
any the new value, or 
n u u l l l
if an item was removed
u r l
*
string the page whi called a method that triggered this ange
* Note: the 
u r r l
property was originally called 
u r i
. Some browsers shipped with that property before the specification anged.
diveintohtml5.org
THE PAST, PRESENT & FUTURE OF LOCAL STORAGE FOR WEB APPLICATIONS
For maximum compatibility, you should e whether the 
u r l
property exists, and if not, e for the 
u r i
property instead.
e 
s t t o r a a g g e
event is not cancelable. From within the 
h a n n d d l e _ _ s s t o r r a a g e
callba function,
there is no way to stop the ange from occurring. It’s simply a way for the browser to tell
you, “hey, this just happened. ere’s nothing you can do about it now; I just wanted to let
you know.”
LIMITATIONS IN CURRENT BROWSERS
LIMITATIONS IN CURRENT BROWSERS
In talking about 
the history of local storage has using third-party plugins, I made a point of
mentioning the limitations of ea tenique, su as storage limits. I just realized that I
haven’t mentioned anything about the limitations of the now-standardized HTML5 Storage. I’ll
give you the answers first, then explain them. e answers, in order of importance, are “5
megabytes,” “
QU OTA _ _ EXCEED D ED D _ ERR
,” and “no.”
“5 megabytes” is how mu storage space ea 
origin gets by default. is is surprisingly
consistent across browsers, although it is phrased as no more than a suggestion in the HTML5
Storage specification. One thing to keep in mind is that you’re storing strings, not data in its
original format. If you’re storing a lot of integers or floats, the difference in representation
can really add up. Ea digit in that float is being stored as a aracter, not in the usual
representation of a floating point number.
QU OTA _ _ EXCEED D ED D _ ERR
” is the exception that will get thrown if you exceed your storage
quota of 5 megabytes. “No” is the answer to the next obvious question, “Can I ask the user
for more storage space?” At time of writing, no browser supports any meanism for web
developers to request more storage space. Some browsers (
like Opera) allow the user to
control ea site’s storage quota, but it is purely a user-initiated action, not something that
you as a web developer can build into your web application.
HTML5 STORAGE IN ACTION
HTML5 STORAGE IN ACTION
diveintohtml5.org
THE PAST, PRESENT & FUTURE OF LOCAL STORAGE FOR WEB APPLICATIONS
Let’s see HTML5 Storage in action. Recall 
the Halma game we constructed in the canvas
apter. ere’s a small problem with the game: if you close the browser window mid-game,
you’ll lose your progress. But with HTML5 Storage, we can save the progress locally, within
the browser itself. Here is 
a live demonstration. Make a few moves, then close the browser
tab, then re-open it. If your browser supports HTML5 Storage, the demonstration page should
magically remember your exact position within the game, including the number of moves
you’ve made, the position of ea of the pieces on the board, and even whether a particular
piece is selected.
How does it work? Every time a ange occurs within the game, we call this function:
f u n n c c t i o o n  s s a ve Ga m m e e S t a a t t e ( )  {
i f  ( ( !s u u p p p o r t t s s L o o c c a a l S t t o o r a g e e ( ( ) )  {  r r e t t u u r n  f f a l s s e e ; }
l o c c a a l S t t o o r a g e e ["h h a a l l m a . . g g a m e . . i i n . p p r r o g r e e s s s "] = g g Ga a m e In Pr o o g g r e s s s ;
f o r  ( ( va a r  i  = 0; i  < kNu u m Pi e c e e s s ; i i ++)  {
l o c c a a l S t t o o r a g e e ["h h a a l l m a . . p p i e c e e . . " + i  + ". . r o o w w "] = g g Pi i e e c e s s [i i ]. r r o o w ;
l o c c a a l S t t o o r a g e e ["h h a a l l m a . . p p i e c e e . . " + i  + ". . c o o l l u m n n "] =
g Pi i e e c e s s [i i ]. c c o o l u m m n n ;
}
l o c c a a l S t t o o r a g e e ["h h a a l l m a . . s s e l e c c t t e d p p i i e c e "] = g g S e l l e e c t e d d Pi i e c c e e In d e e x x ;
l o c c a a l S t t o o r a g e e ["h h a a l l m a . . s s e l e c c t t e d p p i i e c e h h a a s m o o ve e d "] =
g S e e l l e c t t e e d Pi e e c c e H a a s s Mo ve d ;
l o c c a a l S t t o o r a g e e ["h h a a l l m a . . m m o ve c c o o u n t t "] = g g Mo ve Co u u n n t ;
r e t t u u r n  t t r u e ;
}
As you can see, it uses the 
l o o c a l l S S t o r a a g g e
object to save whether there is a game in
progress (
g Ga a m e In Pr o o g g r e s s s
, a Boolean). If so, it iterates through the pieces (
g Pi i e e c e s
, a
JavaScript 
Ar r a y
) and saves the row and column number of ea piece. en it saves some
additional game state, including whi piece is selected (
g S S e e l e c c t t e d Pi i e e c e In d e x
, an integer),
whether the piece is in the middle of a potentially long series of hops
(
g S e l l e e c t e e d d Pi e e c c e H a a s s Mo o ve e d
, a Boolean), and the total number of moves made so far
(
g Mo ve Co u u n n t
, an integer).
On page load, instead of automatically calling a 
n e w w Ga a m e ( ( )
function that would reset these
variables to hard-coded values, we call a 
r e s u u m m e Ga m m e e ( )
function instead. Using HTML5
diveintohtml5.org
THE PAST, PRESENT & FUTURE OF LOCAL STORAGE FOR WEB APPLICATIONS
Storage, the 
r e s u u m m e Ga a m m e ( )
function es whether a state about a game-in-progress is
stored locally. If so, it restores those values using the 
l o c a a l l S t o o r r a g e
object.
f u n n c c t i o o n  r r e s s u u m e Ga m e ( ( )  {
i f  ( ( !s u u p p p o r t t s s L o o c c a a l S t t o o r a g e e ( ( ) )  {  r r e t t u u r n  f f a l s s e e ; }
g Ga a m m e In n Pr r o g r r e e s s  = ( ( l l o o c a l S S t t o r a a g g e ["h h a a l m a a . . g a m m e e . i n . . p p r o g g r r e s s "] ==
"t r r u u e ") ) ;
i f  ( ( !g Ga m e In n Pr r o g g r r e s s s )  {  r r e e t u r r n  f f a l l s s e ; }
g Pi i e e c e s  = n n e e w  A r r r r a y ( ( kNu u m Pi e c e e s s ) ;
f o r  ( ( va a r  i  = 0; i  < kNu u m Pi e c e e s s ; i i ++)  {
va r  r r o w  = p p a a r r s e In t ( l l o o c a l S S t t o r a a g g e ["h h a a l m a a . . p i e e c c e . " + i  + ". . r r o o w "]) ;
va r  c c o l l u u m n  = p p a r r s s e In n t t ( l o c c a a l S t t o o r a g e e ["h h a a l l m a . . p p i e c e e . . " + i  +
". c c o o l u m m n n "]) ;
g Pi i e e c e s s [i i ] = n n e w  Ce e l l l l ( r o w w , c c o o l l u m n ) ) ;
}
g Nu u m m Pi e e c c e s  = kNu u m m Pi e e c c e s ;
g S e e l l e c t t e e d Pi e e c c e In n d d e x  =
p a r r s s e In n t t ( l o c c a a l S t t o o r a g g e e ["h a a l l m a . . s s e l e c c t t e d p p i i e c e e "]) ) ;
g S e e l l e c t t e e d Pi e e c c e H a a s s Mo ve d  =
l o c c a a l S t t o o r a g e e ["h h a a l l m a . . s s e l e c c t t e d p p i i e c e h h a a s m o o ve e d "] == "t t r u u e e ";
g Mo o ve e Co o u u n t  = p p a r r s s e In n t t ( l o c c a a l S t t o o r a g e e ["h h a a l l m a . . m m o ve c c o o u n t t "]) ) ;
d r a a w w Bo a a r r d ( ) ;
r e t t u u r n  t t r u e ;
}
e most important part of this function is the caveat that I mentioned earlier in this apter,
whi I’ll repeat here: Data is stored as strings. If you are storing something other than a
string, you’ll need to coerce it yourself when you retrieve it. For example, the flag for
whether there is a game in progress (
g Ga a m m e In n Pr r o g r r e e s s
) is a Boolean. In the
s a ve e Ga a m e e S S t a t e e ( ( )
function, we just stored it and didn’t worry about the datatype:
l o c c a a l S t t o o r a g e e ["h h a a l l m a . . g g a m e . . i i n . p p r r o g r e e s s s "] = 
g Ga a m e In Pr o o g g r e s s s ;
But in the 
r e s u m m e e Ga m m e e ( )
function, we need to treat the value we got from the local storage
area as a string and manually construct the proper Boolean value ourselves:
diveintohtml5.org
THE PAST, PRESENT & FUTURE OF LOCAL STORAGE FOR WEB APPLICATIONS
g Ga a m m e In n Pr r o g r r e e s s  = ( ( l l o o c a l S S t t o r a a g g e ["h h a a l m a a . . g a m m e e . i n . . p p r o g g r r e s s "] 
== "t t r u u e e ") ;
Similarly, the number of moves is stored in 
g M o o ve Co u n t
as an integer. In the
s a ve e Ga a m e e S S t a t e e ( ( )
function, we just stored it:
l o c c a a l S t t o o r a g e e ["h h a a l l m a . . m m o ve c c o o u n t t "] = 
g Mo ve Co u u n n t t ;
But in the 
r e s u m m e e Ga m m e e ( )
function, we need to coerce the value to an integer, using the
p a r s s e e In t t ( ( )
function built into JavaScript:
g Mo o ve e Co o u u n t  = 
p a r r s s e In n t ( ( l o c c a a l S t t o o r a g g e e ["h a a l l m a . . m m o ve c c o o u n t t "]) ) ;
BEYOND NAMED KEY-VALUE PAIRS:
BEYOND NAMED KEY-VALUE PAIRS:
COMPETING VISIONS
COMPETING VISIONS
While 
the past is liered with has and workarounds, the present condition of HTML5
Storage is surprisingly rosy. A new API has been standardized and implemented across all
major browsers, platforms, and devices. As a web developer, that’s just not something you
see every day, is it? But there is more to life than “5 megabytes of named key/value pairs,”
and the future of persistent local storage is… how shall I put it… well, there are competing
visions.
One vision is an acronym that you probably know already:  SQL. In 2007, Google launed
Gears, an open source cross-browser plugin whi included an embedded database based on
SQLite. is early prototype later influenced the creation of the 
Web SQL Database
specification. Web SQL Database (formerly known as “WebDB”) provides a thin wrapper
around a SQL database, allowing you to do things like this from JavaScript:
diveintohtml5.org
THE PAST, PRESENT & FUTURE OF LOCAL STORAGE FOR WEB APPLICATIONS
Documents you may be interested
Documents you may be interested