当前位置: 首页 > 科技观察

刷新网站:使用Ajax构建更好的单页体验_0

时间:2023-03-20 02:13:44 科技观察

自从“Ajax”这个词在2005年被创造以来,它已经改变了Internet的面貌。应用程序变得更具交互性;桌面模型迁移到Web并在此过程中发展;网络作为一个平台变得流行起来。此更改不影响站点的基本功能。当然,代码模块是异步加载的;一些网站使用Ajax加载通知;当您滚动页面时,FacebookLike按钮神奇地出现了。典型的博客网站或宣传册网站提供基于页面的体验;既然网络本质上是一种基于页面的媒体,为什么要把事情弄得太复杂呢?但移动应用程序的流行将基于页面的交互推向了一个新的高度。当导航区域保持不动时,屏幕平滑地滑入和滑出,在保留上下文的同时提供愉快的体验,进一步验证用户在信息层次结构中的位置。用户看到的不是屏幕之间的空白,而是加载动画。不刷新网站也许现在是我们为桌面Web采用这种方法的时候了:不刷新网站。即使加载速度很快,整页刷新也会影响上下文。使用Ajax,我们可以在加载新内容时将导航元素保持在原位。我们可以加载带有动画的新内容,进一步演示我们如何在站点的信息层次结构中移动。即使有动画,这样的动作也会让人感觉轻松,鼓励访问者继续导航——特别是因为返回动作触手可及。不可否认,这样的网站需要比传统网站多得多的编码。但是大部分代码已经编写完成:jQTouch和jQueryMobile已经可以采用多个HTML页面并创建基于Ajax的动画体验——总而言之,无需额外的JavaScript代码。它们为桌面友好的框架提供了完美的基础。我们称它为page.js。请原谅我保留pagejs.com(https://github.com/schvenk/page.js),将其指向全新的GitHub存储库,以便我们可以立即开始对其进行更改。它是这样工作的:您可以按照现在的方式编写站点的HTML,向针对特定标记的页面元素添加一些额外信息。(jQueryMobile使用HTML5数据属性,例如,来定义页面上的不同区域。)加载站点时,page.js读取并修改您的HTML,使用移动滚动条元素包装准备滑出屏幕的那部分页面内容,并相应地调整您的内部链接。(如果性能很关键,这可能发生在服务器端,缓存。)当访问者单击内部链接时,加载动画会显示在屏幕上,同时通过Ajax加载新页面。当前页面滑出屏幕,新页面滑入。根据情况,导航区域保留在原处。浏览器的后退/前进历史记录使用URL的散列部分(#之后的所有内容)进行保存。单击“返回”按钮,上一页滑回屏幕。你可以使用BenAlman写的hashchange插件(http://benalman.com/projects/jquery-hashchange-plugin/),去我的网站看看(http://interfacethis.com/portfolio/)很简单的例子。新机遇但这仅仅是个开始。单页网站有很大的潜力。当访问者滚动浏览您的主页时,为什么不加载可能在后台向下钻取的页面?结合您的GoogleAnalytics数据,您可以确定在当前页面之后最有可能访问的目的地。如果愿意,您还可以按访问者人口统计数据进行细分。因此,新的导航模式成为可能。上一个页面不需要一路滑出屏幕,而是可以浏览侧边部分以保留上下文,从而创造出现代面包屑(breadcrumb)导航方式:另外,我们可以使用HTML5的离线功能,因为不可能缓存所有改进的页面性能:在客户端保留导航元素和其他静态元素,然后使用这些缓存的元素动态组装页面。挑战目前,门槛太高,大多数人无法做到这一点。只有拥有丰富的专业知识并付出大量努力,Page.js才会成功。***链接(固定链接)提出了挑战。基于Ajax的导航依赖于ULR(http://my-site.com/my-page#hash-component)的散列部分。它包含在书签中,但不会传输到服务器。所以hash部分是***链接的一部分,但是离不开能够支持JavaScript的客户端的配合,不被Google等搜索引擎收录。希望有一个解决方法:Google已经开发了一个标准来使Ajax链接可搜索;一旦你使用了这个标准,你的网站就可以被搜索到而无需刷新你的站点。解决方案变得更好了:许多浏览器开始实施HTML5HistoryAPI(应用程序编程接口);相比之下,这套API解决这个问题就漂亮多了。所以你现在只需要用一点JavaScript代码就可以实现,以后可以大大减少JavaScript代码。从框架的角度来看,这些挑战是可以解决和克服的。因此,第一步是创建页面。js,然后将其交给网站创建者。然后坐下来付清。原文:http://operationproject.com/2011/rethink-the-website/【编者推荐】使用jQuery设计数据表,实现Ajax功能,编写更健壮的代码。Struts2中Ajax开发实例初探。介绍Ajax优于JSF的原因。