While there
is no limitation in the page size per se, you may experience some weird
behavior (errors) when trying to load large html files using the Awesomium
WebView LoadHTML method.
I been
using this framework for a week now and I’m more than satisfied, it’s a great
piece of software, but the error message you get when a large page fails to
load, it is a bit confusing “the uri is too long”….
I was
working with two files, one of them was large, the other was small, but URL length was the same for both, let say foo.html and bar.html. When I load foo.html
things work great, but when I try to load bar.html, boom, I got an error saying
that something is wrong with URI’s length? here is where I went “WTF, both URIs have
the same length!” ;)
The thing
is that the framework internally is using the .NET Uri class which have a limitation
of 65K something characters, if the html that you are trying to load exceeds
that limitation (not the url, the html) you will get that exception.
Fortunately
there is a workaround that works like a charm. Instead of using LoadHTML, you
have to make a local copy of the html page and use that copy to set the
datasource property on the web view, by doing this, the problem gets fixed :).
The code
may look something like this:
Configuring the datasource property
Loading the html
In this post I'm using
Awesomium 1.7 RC3, keep in mind that the code above may not work
on previous versions.
PS:
You can see a full explanation of this behavior at the official Awesomium
website on this thread http://support.awesomium.com/discussions/problems/1027-load-html-in-17-rc2#comment_18672077
Great example, saved me hours.
ReplyDeleteCool, glad it helped! :)
Delete