我在javascript文件中有几个更新方法,用于更新我的ajax应用程序,如下所示:
function updateByPk(layer, pk) {
url = "get_auction.php?cmd=GetAuctionData&pk="+pk+"&sid="+Math.random();
update(layer, url);
}
function updateByQuery(layer, query) {
url = "get_records.php?cmd=GetRecordSet&query="+query+"&sid="+Math.random();
update(layer, url);
}
function updateByPage(layer, query, pg) {
url = "get_records.php?cmd=GetRecordSet&query="+query+"&pg="+pg+"&sid="+Math.random();
update(layer, url);
}
我想知道通过重写页面而不是使用ajax方法来执行像分页这样的事情是非常有效的。我不确定哪种方法更有效,或者每种方法各有利弊。
答案 0 :(得分:2)
使用AJAX优势进行分页:
没有AJAX优势的分页:
答案 1 :(得分:1)
如果我得到了问题,那么你问的是,通过Javascript + AJAX完成分页是否更好,或者通过调用服务器来完成?
我个人说只是对服务器使用请求。在这样的情况下,AJAX是不可取的,除了“bling”因素(是的,这是一个技术术语:P)
如果您正确地编写应用程序并考虑了辅助功能,则无论如何都应该编写“直接调用服务器”位(当有人关闭Javascript并点击您的“下一页”链接时)
拥有Javascript意味着1)您需要维护额外的代码。 2)你打破后退按钮。如果只实现AJAX方法,则无法访问其他页面上的数据。如果你这样做,你就没有简单的方法来链接它(通过复制地址栏)。
我个人只会将AJAX用于那些将为页面添加功能的内容,而不会取消任何其他功能,例如,在填写注册表单时检查是否使用了用户名。自动建议等等。
答案 2 :(得分:1)
Ajax在客户端和服务器上会更容易。客户端不会重置滚动,不必检查样式表和图像等所有新资产,并且可以更快地加载内容。服务器不必生成带页眉和页脚的整个页面;它只需要生成更改页面的一部分。
缺点是使用良好的UI(添加加载微调器和相关的doodads)进行编码会有点困难。如果客户端禁用了javascript,那么您的页面会中断。所以,如果你做ajax,你需要两者。尽管如此,在Ajax的优雅降级中编码很容易。
<a href="/search?term=foo&page2" onclick="loadPageViaAjax(2); return false">
Next
</a>
这是一个即使没有javascript也可以使用的链接示例。如果启用了javascript,则触发onclick,发生ajax并停止跟随return false
的链接。如果没有javascript,则忽略onclick并正常跟踪链接。
答案 3 :(得分:0)
这取决于您对效率的定义。通过AJAX加载新内容将减少通过网络传输的字节数,但如果您无法将动态内容缓存到静态文件中(我假设您在重新加载页面时会这样),则服务器上的字节可能会更加费力。但是,过多地依赖AJAX可能会导致浏览器不支持javascript(它们存在)的用户不太容易访问您的页面,并且可能会损害您的网站被搜索引擎编入索引的能力。两个世界中最好的方案是让链接指向重新加载的页面,但是使用javascript覆盖该行为以通过AJAX加载新内容。