Javascript 在通过ajax请求页面并排除非ajax部分时,我是否节省了时间?

Javascript 在通过ajax请求页面并排除非ajax部分时,我是否节省了时间?,javascript,php,jquery,ajax,performance,Javascript,Php,Jquery,Ajax,Performance,我正在通过ajax()实现页面加载,我想知道通过jQuery函数.get()请求页面时是否可以节省一些时间 在运行.get()函数时,我会向我的PHP页面传递一个参数,该参数指示AJAX正在请求它,并且它应该只返回标记为这样的部分 例如,我的所有PHP页面都有页眉和页脚函数,因此当我的AJAX函数调用这些页面时,将跳过页眉和页脚函数 这是否会在我的.get()请求中节省我的时间和带宽,从而更快地交付页面?如果没有,还有其他方法可以做到这一点吗?长话短说,“可能”。 这取决于两件事: 1) 后端的

我正在通过
ajax()
实现页面加载,我想知道通过jQuery函数
.get()
请求页面时是否可以节省一些时间

在运行
.get()
函数时,我会向我的PHP页面传递一个参数,该参数指示AJAX正在请求它,并且它应该只返回标记为这样的部分

例如,我的所有PHP页面都有
页眉
页脚
函数,因此当我的AJAX函数调用这些页面时,将跳过
页眉
页脚
函数

这是否会在我的
.get()
请求中节省我的时间和带宽,从而更快地交付页面?如果没有,还有其他方法可以做到这一点吗?

长话短说,“可能”。 这取决于两件事:

1) 后端的效率。 2) 网络的速度

如果后端速度非常慢,并且网络速度很高,那么如果创建此请求的“自定义”版本所需的时间比创建其他版本所需的时间更长,则可能会影响性能。不过,我的猜测是,假设您的后端体系结构设置为将组件组装在一起,则不会这样做。如果组件较少,理论上只请求页面的特定部分,准备请求所需的时间应该较少。如果您正在进行某种逆向工程,从现有页面/内容集中删除组件,那么您可能会看到一个缺点。但是,服务器端的效率通常取决于数据库请求等,无论您发出何种请求,通常都会发生这种情况

如果您的网络速度很慢,并且服务器端没有瓶颈,那么您肯定会看到速度的提高(尽管可能可以忽略不计)

然而,总而言之,除非每个请求都要交付半兆代码(根据我的经验,这只适用于臃肿的框架和企业级平台),否则无论哪种方式,您都不会看到差异。HTML是一种基于文本的格式,影响加载时间的真正因素是对图像、视频和其他类似资产的请求

另一种方法是,您可以请求JSON,而不是请求HTML。这意味着您只能获取组成页面的内容,并在页面进入时让javascript在客户端对其进行更新。这要复杂得多,但会使您的应用程序看起来快得多

我建议你采用“只得到你需要的东西”的方法(这似乎就是你正在做的事情),但是如果你在一家初创公司,你需要担心资金跑道,我会说,“现在就完成,以后再优化”


希望这有帮助:)

这将节省时间,因为返回的数据中传输的HTML更少,是的。如果您想节省更多的时间和带宽,请返回序列化格式,如JSON,并在客户端上构建HTML。这将进一步减少请求大小。这将节省带宽,但如果要从现有文件中剥离页眉/页脚,可能需要更多时间。然而,这两种影响可能都是微不足道的。如果您的存储片段不需要处理,并且没有额外的信息,那么这是最有效的。此外,如果您可以直接将它们存储为html文件片段,而不是通过php加载它们,那么您的服务器将更好地缓存和压缩静态内容,这将使其变得更小更快。太棒了!谢谢你的回答,我得决定走哪条路。如果我像@Rorymcrossan指出的那样使用JSON而不是dandavis建议的那样构建HTML页面,速度会更快吗?因为我非常依赖PHP,这会给我带来太多的麻烦,无法交付HTML页面而不是PHP。没有HTML就无法生成页面。JSON是一种数据格式,允许您用数据填充页面。通过使用JSON路径,您将看到一个模板化模型,其中有一个模板系统(angular、Handlebar等),该系统异步接收JSON对象并将其作为填充的HTML输出。根据我的经验,它很复杂,设置起来也比较慢,但是效率很高,因为所有的输出工作都是从服务器转移到客户端的。这可能是“最好”的方法,但这取决于你的用户、技术和许多其他因素。感谢你的回答,dudewad,我介于只请求我需要的部分或请求JSON和使用模板系统构建它之间,正如你所指出的。如果禁用javascript的用户访问该页面,则该页面必须保持功能。顺便说一句,我不是一家初创公司,我想优化我的网站,以尽可能最好的方式将其交付给我的用户,同时考虑到它的实际框架。我过去和你很像,我希望它“无处不在”。不过,你可能会发现,从商业角度来看,这毫无意义。仔细想想,这个名字来自于一个曾经用这个名字发誓它应该在任何地方都能用的人。获取一些关于有多少用户禁用了JS的指标,因为它比您想象的要小得多。然后,您可以决定是否要为其编码。另外,请记住,如果JS被禁用,您的站点将已经崩溃。您正在使用jQuery。Sooooo:)好的,到目前为止,是的,我正在使用jQuery,但是没有它,网站工作得非常好。我对每个实例都有回退,以防用户禁用javascript。然而,经过一些阅读,我正在考虑使用angular js并放弃对没有js的用户的支持。这将是一个很大的工作,所以我还没有决定做什么。我忘了提到我正在使用wordpress。再次感谢你,杜德瓦德。我刚刚做出决定,我会选择Angular JS,我读的越多,我就越喜欢它。谢谢你扩大了我的知识面。这是个不错的选择:)让我继续