Loading large html pages using Awesomium.NET

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


Post a Comment

Popular posts from this blog

How to create MS Word documents from Office templates using C#

Printing html using the embedded web browser control

WinForms, paging the DataGridView the right way