nic*_*uti 4 web-applications web-crawler eclipse-rap google-webmaster-tools google-index
我正在开发一个RAP网站,并希望谷歌这样的机器人可以访问它(我这里只是指Google;但我认为其他搜索引擎的工作方式类似).Webapp包含我从数据库加载的动态内容,具体取决于用户搜索的内容.如何为Google提供此内容?我已阅读Google的ajax抓取指南,但不知道如何将其应用于RAP:
提前致谢!
Ajax的想法是应用程序不会一直加载新页面,而是在后台使用Ajax请求加载新的内容.无论如何,要在应用程序中提供"深层链接",您需要包含片段部分的URL,例如example.com/myapp#mystate
.使用此技巧是因为当只有URL的片段部分发生更改时,浏览器不会重新加载页面.
这与RAP没什么不同.为了处理这种URL,RWT提供了浏览器历史API.当应用程序的状态发生变化时,例如,当用户选择某种选项卡或触发搜索时,您可以在浏览器历史记录中添加新条目,从而有效地更改浏览器中URL的片段:
RWT.getBrowserHistory().createEntry( "!mystate", "Example" );
Run Code Online (Sandbox Code Playgroud)
这会将URL更改为example.com/app/entrypoint#!mystate
(此状态的"深层链接")并将名为"Example"的条目添加到浏览器历史记录中,因此您可以使用浏览器的后退按钮稍后返回此状态.
为了能够对URL的更改做出反应,您必须向浏览器历史记录添加一个侦听器.每次片段部分更改时都会通知此侦听器.当应用程序以片段(某人跟随深层链接)启动时,情况也是如此.然后,您的应用程序负责重新安装此片段表示的状态.
RWT.getBrowserHistory().addBrowserHistoryListener( new BrowserHistoryListener() {
public void navigated( BrowserHistoryEvent event ) {
// show state represented by event.entryId
}
} );
Run Code Online (Sandbox Code Playgroud)
针对不同"子页面"使用片段URL的RAP应用程序的示例是RAP示例演示.
故事的其余部分应在Google的AJAX抓取指南中进行说明.您的ID必须以a开头,!
以生成带有片段的URL #!mystate
.这些网址是您应添加到网站地图的网址.要提供爬网程序,您可以实现一个servlet过滤器,该过滤器捕获对URL模式的请求?_escaped_fragment_=mystate
并返回特定状态的HTML表示.
归档时间: |
|
查看次数: |
465 次 |
最近记录: |