javascript或php - 更新效率最高的是什么?

时间:2009-02-09 22:15:50

标签: php javascript ajax

我在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方法来执行像分页这样的事情是非常有效的。我不确定哪种方法更有效,或者每种方法各有利弊。

4 个答案:

答案 0 :(得分:2)

使用AJAX优势进行分页:

  • 可能传输的数据较少,这意味着页面加载速度更快,带宽使用更少。
  • 更顺畅的用户体验

没有AJAX优势的分页:

  • 后退和前进按钮可在浏览器中使用
  • 您可以拥有特定页面的URL(尽管您也可以使用Page.php #pagenumber技巧使用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&amp;page2" onclick="loadPageViaAjax(2); return false">
  Next
</a>

这是一个即使没有javascript也可以使用的链接示例。如果启用了javascript,则触发onclick,发生ajax并停止跟随return false的链接。如果没有javascript,则忽略onclick并正常跟踪链接。

答案 3 :(得分:0)

这取决于您对效率的定义。通过AJAX加载新内容将减少通过网络传输的字节数,但如果您无法将动态内容缓存到静态文件中(我假设您在重新加载页面时会这样),则服务器上的字节可能会更加费力。但是,过多地依赖AJAX可能会导致浏览器不支持javascript(它们存在)的用户不太容易访问您的页面,并且可能会损害您的网站被搜索引擎编入索引的能力。两个世界中最好的方案是让链接指向重新加载的页面,但是使用javascript覆盖该行为以通过AJAX加载新内容。