GWT is for "apps" — right? But what's about static pages? (GWT's Future Plans...)

118 views
Skip to first unread message

Alexander Orlov

unread,
Aug 3, 2011, 7:33:47 PM8/3/11
to google-we...@googlegroups.com
GWT is a framework for building Ajax apps that act as clients and (optionally) communicate with a kinda RESTful backend via RPC or using RequestFactory (both are JSON based). That's my to the point understanding of GWT.

But what's about static pages? To deliver static content, especially for search engines and other crawlers GWT might be not the best choice (yet?) because the whole GWT app is located in a single JS file and other subsequently fetched files. Those crawlers need static snapshots of a certain page state. In fact there are approaches and proposals to make Ajax apps crawlable. This is a a general proposal from Google of how to make an Ajax page crawlable. And Acris is a GWT-based framework that implements Google's proposal (haven't tried it, don't know how good it is). 

However both approaches are everything else but straightforward or even fast&easy to apply to already existing Ajax/GWT apps. So my question is primarily directed to GWT core devs: Are there plans to implement an easy-to-use "static snapshot of a certain Ajax state" feature into GWT? Or is this a problem domain that will never be addressed by GWT?

The problem arises from the fact that a company cannot rely on GWT only if it wants to maintain a SEO-friendly and crawlable content-driven page. For this purpose Wicket, Tapestry and other Java frameworks have to be used.

-Alex

Karthik Reddy

unread,
Aug 3, 2011, 9:50:09 PM8/3/11
to google-we...@googlegroups.com
I would like to make a related observation although, only tangentially related to the initial poster's questions and grievances:

Even though GWT started off as a toolkit for developing desktop-style applications for the web, I think it has slowly transformed beyond the said scope. 

As an example consider, google hotel search  at http://www.google.com/hotelfinder/. Evidently, this has been built using GWT and evidently it is closer to a web-style application than a desktop-style application.


Gal Dolber

unread,
Aug 3, 2011, 10:36:11 PM8/3/11
to google-we...@googlegroups.com
GWT isn't the problem, you can easily make a non-CEO-friendly apps with jquery, sencha, or any other js framework.
The problem is that search engines do not crawl AJAX apps yet. The proposal to make ajax crawlable is a quick solution to make them work with old crawling infrastructure. 
I really hope to see a more real solution in the near future.



--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/s6C_kGBy96UJ.

To post to this group, send email to google-we...@googlegroups.com.
To unsubscribe from this group, send email to google-web-tool...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.



--
Guit: Elegant, beautiful, modular and *production ready* gwt applications.

http://code.google.com/p/guit/




Nick Hristov

unread,
Aug 3, 2011, 11:57:23 PM8/3/11
to Google Web Toolkit
What exactly do you hope to accomplish?

If I am understanding you correctly, you want to have the server
generate some html page content and the the embedded gwt module will
make the page dynamic (I.e apply filters, next page, etc.)

You can already do much of this functionality, its just not the
standard way of building gwt apps.

You may want to look into using gquery.

Nick

On Aug 3, 7:36 pm, Gal Dolber <gal.dol...@gmail.com> wrote:
> GWT isn't the problem, you can easily make a non-CEO-friendly apps with
> jquery, sencha, or any other js framework.
> The problem is that search engines do not crawl AJAX apps yet. The proposal
> to make ajax crawlable is a quick solution to make them work with old
> crawling infrastructure.
> I really hope to see a more real solution in the near future.
>

Alexander Orlov

unread,
Aug 4, 2011, 3:41:16 AM8/4/11
to google-we...@googlegroups.com
On Thursday, August 4, 2011 5:57:23 AM UTC+2, Nick Hristov wrote:
If I am understanding you correctly, you want to have the server
generate some html page content and the the embedded gwt module will

A server-side approach that generates static snapshots of every — in a certain way annotated — state is a possible solution.

But there could be also a compile time approach. That is, during compile time the appropriate static snapshots could be generated to represent a certain state of the app pre-filled with certain default values. This would be even a more elegant solution as the server don't need to be bothered with this stuff in the future.

Hope to read something from the core devs... :)

Jambi

unread,
Aug 4, 2011, 5:27:03 AM8/4/11
to Google Web Toolkit
> But there could be also a compile time approach. That is,* during compile
> time the appropriate static snapshots could be generated* to represent a
> certain state of the app pre-filled with certain default values. This would
> be even a more elegant solution as the server don't need to be bothered with
> this stuff in the future.

I don´t think this is a good idea. The dynamic content, that should be
crawlable, doesn´t exist at compile time.

Alexander Orlov

unread,
Aug 4, 2011, 6:01:30 AM8/4/11
to google-we...@googlegroups.com
On Thu, Aug 4, 2011 at 11:27 AM, Jambi <michael.l...@googlemail.com> wrote:
I don´t think this is a good idea. The dynamic content, that should be
crawlable, doesn´t exist at compile time.

What I mean is that you should be able to annotate static parts of your "app" that might be relevant for crawlers and put default values where your dynamic parts are. These default values could simply state USERNAME, DATE, CURRENT BALANCE. So the crawler could get a better context of the static parts of your app, actually a "page" in this case.

Juan Pablo Gardella

unread,
Aug 4, 2011, 8:01:34 AM8/4/11
to google-we...@googlegroups.com
Any gwt team member?

2011/8/4 Alexander Orlov <alexand...@loxal.net>

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.

Alex Dobjanschi

unread,
Aug 4, 2011, 9:03:28 AM8/4/11
to google-we...@googlegroups.com

Alex Dobjanschi

unread,
Aug 4, 2011, 9:11:27 AM8/4/11
to google-we...@googlegroups.com
I just saw you already posted this link, sorry for that.

As far as it goes, you're basically running Javascript code, in a (simple-to-complex) app, inside client code (browser sandbox). I don't how crawling such an app would be straightforward.

Alexander Orlov

unread,
Aug 4, 2011, 9:45:52 AM8/4/11
to google-we...@googlegroups.com
On Thu, Aug 4, 2011 at 3:11 PM, Alex Dobjanschi <alex.do...@gmail.com> wrote:
As far as it goes, you're basically running Javascript code, in a (simple-to-complex) app, inside client code (browser sandbox). I don't how crawling such an app would be straightforward.

The "apps parts of an app" shouldn't be crawled... There are "static parts" in almost every "app", e.g. product descriptions and exactly those parts of an "app" should be crawled.

dreamer

unread,
Aug 4, 2011, 10:24:52 AM8/4/11
to Google Web Toolkit
=> static pages
I tried to develop a page uisng UIBinder (mix of html and widgets)
and RPC calls where it makes
sense and ultimately I wanted to post entire page to server and let
server serve next page.

Here are My roadblocks for now

* Not sure how to post entire page to servlet, develop just using
designer and plugin

* If some how, able to post UIBinder page to servlet, how servlet
creates a RequestDispatcher for another UIBinder page?

* Can UIBinder page be identifiable like jsp/html page on
server ???????

-Venu
http://schoolk12.appspot.com/





On Aug 4, 6:45 am, Alexander Orlov <alexander.or...@loxal.net> wrote:
> On Thu, Aug 4, 2011 at 3:11 PM, Alex Dobjanschi
> <alex.dobjans...@gmail.com>wrote:

Nick Hristov

unread,
Aug 5, 2011, 12:07:58 AM8/5/11
to Google Web Toolkit
I am sorry, but this sounds insane.

You are going to generate page content on the browser which you will
post on the server so that it can be loaded by the browser.

I still stand by my original approach.

Generate the simple html content on the server, and let the browser
load a GWT module which (possibly with gwtquery) attaches event
handlers into the page and links into the rest of the module's
functionality.

Nick


On Aug 4, 7:24 am, dreamer <venugopal.vasire...@gmail.com> wrote:
>  => static pages
>   I tried to develop a page uisng UIBinder (mix of html and widgets)
> and RPC calls where it makes
>   sense and ultimately I wanted to post entire page to server and let
> server serve next page.
>
> Here are My roadblocks for now
>
>  * Not sure how to post entire page to servlet, develop just using
> designer and plugin
>
>  * If some how, able to post UIBinder page to servlet, how servlet
> creates a RequestDispatcher for another UIBinder page?
>
>  * Can UIBinder page be identifiable like jsp/html page on
> server ???????
>
> -Venuhttp://schoolk12.appspot.com/
>
> On Aug 4, 6:45 am, Alexander Orlov <alexander.or...@loxal.net> wrote:
>
>
>
>
>
>
>
> > On Thu, Aug 4, 2011 at 3:11 PM, Alex Dobjanschi
> > <alex.dobjans...@gmail.com>wrote:
>
> > > As far as it goes, you're basically running Javascript code, in a
> > > (simple-to-complex) app, inside client code (browser sandbox). I don't how
> > > crawling such an app would be straightforward.
>
> > > The "appsparts of an app" shouldn't be crawled... There are "static parts"

Alexander Orlov

unread,
Aug 5, 2011, 2:59:11 AM8/5/11
to google-we...@googlegroups.com
On Fri, Aug 5, 2011 at 6:07 AM, Nick Hristov <nick.h...@gmail.com> wrote:
You are going to generate page content on the browser which you will
post on the server so that it can be loaded by the browser.

Please read what I wrote! I wrote during compile time. And compile time is the time when Ajax is generated out of Java on the dev machine.
 
Generate the simple html content on the server, and let the browser
load a GWT module which (possibly with gwtquery) attaches event
handlers into the page and links into the rest of the module's
functionality.

Why should static HTML content be generated on the server? 

And if you mean not "generated" but just served by the server: in this case you might have an HTML container page that cannot use the LayoutPanels... but I think, I don't get what you mean with your proposal.

Alex
 

On Aug 4, 7:24 am, dreamer <venugopal.vasire...@gmail.com> wrote:
>  => static pages
>   I tried to develop a page uisng UIBinder (mix of html and widgets)
> and RPC calls where it makes
>   sense and ultimately I wanted to post entire page to server and let
> server serve next page.
>
> Here are My roadblocks for now
>
>  * Not sure how to post entire page to servlet, develop just using
> designer and plugin
>
>  * If some how, able to post UIBinder page to servlet, how servlet
> creates a RequestDispatcher for another UIBinder page?
>
>  * Can UIBinder page be identifiable like jsp/html page on
> server ???????
>
> -Venuhttp://schoolk12.appspot.com/
>
> On Aug 4, 6:45 am, Alexander Orlov <alexander.or...@loxal.net> wrote:
>
>
>
>
>
>
>
> > On Thu, Aug 4, 2011 at 3:11 PM, Alex Dobjanschi
> > <alex.dobjans...@gmail.com>wrote:
>
> > > As far as it goes, you're basically running Javascript code, in a
> > > (simple-to-complex) app, inside client code (browser sandbox). I don't how
> > > crawling such an app would be straightforward.
>
> > > The "appsparts of an app" shouldn't be crawled... There are "static parts"
>
> > in almost every "app", e.g. product descriptions and exactly those parts of
> > an "app" should be crawled.
--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-we...@googlegroups.com.
To unsubscribe from this group, send email to google-web-tool...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.




--
www.loxal.net
Mobile: +49 176 4440-3969
Rablstr. 12 • 81669 Munich • Germany

Mikhail Marenov

unread,
Aug 6, 2011, 2:32:06 AM8/6/11
to google-we...@googlegroups.com
Google for GWTP or GWT Platform. It has crawler support.
Reply all
Reply to author
Forward
0 new messages