当前位置: 首页 > 面试题库 >

性能基准:PHP生成的内容VS。JavaScript和DOM over AJAX

缑赤岩
2023-03-14
问题内容

对于以下非常简单的任务: 从数据库查询产品列表并将其显示在网页上,请 考虑2种设置:

Setup1 :PHP脚本查询。所有内容都建立在服务器上,并且整个页面都返回给客户端。

Setup2
:使用AJAX请求内容的静态HTML“页面框架”。接收到的内容使用Javascript在客户端进行解析,并使用innerHTML或类似内容呈现。

当然,只有当您有可供客户选择的页面,类别和标签时,第二种设置才有意义。

我需要至少通过以下方式 比较 这两个:

  • 内容需要花费的时间
  • 用户体验(setup1整体交付,setup2分为“两部分”交付)
  • 可扩展性-每天有100,000个查询时,设置如何进行比较

任何对此问题的想法将不胜感激。


问题答案:

在回答这个问题时,我提出了几点:

  • 您应该使用服务器端脚本来显示页面加载时已知的所有数据 。在这种情况下,您知道应该显示产品列表。应该在页面加载时显示问题答案的事实。

  • 您只应使用AJAX调用来加载 页面加载时尚 知道的动态数据。例如,当您单击Stack Overflow上一个问题或答案下的“评论”链接时。您想查看特定问题的评论的事实在页面加载时是未知的。

  • JavaScript的应该 要求你的网站的访问核心功能

  • 禁用Javascript后,应适当降低功能 。例如,在禁用Javascript的情况下,Stack Overflow可以正常工作。您无权访问Markdown实时预览或动态徽标通知,但核心功能仍然完整。

  • 到服务器生成的页面的单个HTTP请求的加载速度将比加载进行五个或六个其他AJAX调用的页面的请求的加载速度快得多 ,尤其是在高延迟连接(例如蜂窝网络)上。请参阅Yahoo 加速网站最佳做法

您应该将Javascript视为可能无法启用的附加功能,而不是应用于构建网站关键部分的功能。此规则有例外。如果要进行某种分页,单击“下一页”按钮,而只更改产品列表,则AJAX可能是正确的选择。但是,您应该确保不使用Javascript的用户不会被排除在查看整个列表之外。

没有什么比无法访问页面时更令人沮丧的了,因为Web开发人员没有遵守
KISS原则
。例如,以Friendly’s
Restaurants
为例。我想在购物中心时查看他们的菜单,所以我在iPhone上加载了他们的网站,却发现如果没有Flash,您实际上无法获得有关餐厅的任何有意义的信息。到处都是花哨的菜单,到处都是飞扬的甜点,但是最后,我只想看看菜单上的项目。我不能这样做,因为他们需要Flash。在这种情况下,服务的平稳降级将是有帮助的。

没有Java脚本,网络上的某些事情将无法有效完成。显示产品列表 不是
其中之一。如果您仍然不确定,请查看其他热门网站的工作方式。我认为您会发现大多数成功且设计精良的网站都遵循上述指南。



 类似资料:
  • 我可以想象其他类似的情况,源代码的某些部分被作为构建的一部分进行处理,而这个过程的结果文件却不是源代码本身的一部分(缩微、聚合、混淆、SASS、Less等)。 我读到,在Spring Boot中,静态内容应该存储在/meta-inf/resources/,/resources/,/static/,/public/下的类路径中的某个位置。但是生成的内容应该输出到哪里呢? 我可以将插件的输出目录更改为

  • 问题内容: 我热衷于研究Scala,并提出了一个似乎无法找到答案的基本问题:一般来说,Scala和Java在性能和内存使用方面是否有所不同? 问题答案: Scala使得无需意识到即可轻松使用大量内存。这通常非常强大,但有时可能很烦人。例如,假设您有一个字符串数组(称为),以及从这些字符串到文件的映射(称为)。假设您要获取地图中所有来自长度大于两个的字符串的文件。在Java中,您可能 ew!辛苦了

  • 我们需要创建一个RESTful服务。我们想知道选择哪一个现有的框架。我们知道Java和PHP,所以我们主要考虑这两个框架,但其他选择也是可能的。 你们对不同REST框架的性能有经验吗?有什么巨大的差异吗?是否有一些框架非常沉重,如果我们非常关心性能,我们应该避免它们? 您的想法将不胜感激!

  • 这是Web开发人员的完整参考指南,其中列出了与万维网联盟推荐的层叠样式表规范2级中定义的生成内容相关的所有CSS属性。 单击任何属性以查看其描述的示例 - Sr.No. 财产和描述 1 content 在元素周围插入生成的内容。 2 counter-increment 将计数器增加1; value是一个计数器名称列表,每个名称后面跟一个值递增的值。 3 counter-reset 将计数器重置为零

  • 问题内容: 如果网站以某种方式使用AJAX,那么是否可以通过至少WCAG 2.0 A级认证,我很难找到一个明确的答案。 对于例如从WCAG2.0状态 “我可以使用Javascript / Ajax,Flash,PDF,Silverlight和其他技术来满足WCAG 2.0吗?WCAG 2.0旨在应用于广泛的Web技术。” 那并不完全是“是/否”。一些文档建议网站必须在完全禁用JavaScript的

  • 问题内容: 我使用CSS 和属性生成标题和图的编号: 这个(假定合适的浏览器)在任何图像之后都带有漂亮的标签“图1.1”,“图1.2”,依此类推。 问题: 如何从Javascript访问此内容?现在的问题是双重在于我想访问 任一 特定计数器的当前值(在某一DOM节点) 或 所述CSS生成的内容的值(在某一DOM节点) 或 ,很明显,这两个信息。 背景: 我想在链接后面附加指向数字的适当数字,如下所