您可以为AJAX调用添加优先级吗?
Can you add priorities to AJAX calls
我正在创建一些使用ajax获取页面信息的插件。现在有不同的插件做不同的功能。
所有的插件都需要独立使用,但我也想添加功能,使它们可以很好地协同工作。
所有不同的插件都有自己的JavaScript文件和函数。这在HTTP请求方面没有问题,因为大多数人在部署网站时都有插件将所有文件合并为一个。
,
现在来回答我的问题。正如我所说的,不同的插件可以得到网站的不同部分。例如,帖子计数,用户tweets,用户统计,帖子评论。现在我可以指定从网站调用该信息的优先级。我认为我不能把它们合并到一个ajax调用中,因为它们都是单独的工作组件。
有谁知道一个好的解决方案,我可以如何指定首先获得评论,然后是统计数据,等等。
我选择的JS框架是jQuery
一个通用的方法是为等待的AJAX调用实现一个优先级队列。每个插件将把它们的调用放在队列上,并在调用上有一个相关的优先级,AJAX队列处理器将按照优先级顺序处理队列。
下面是一个jQuery优先队列插件的例子:
http://benalman.com/code/projects/jquery-message-queuing/docs/files/jquery-ba-jqmq-js.html同样,这里有一个已经实现的AJAX请求:
排序ajax请求
2020年更新
优先级提示暂时搁置
<标题> 2018在XMLHttpRequest
和window.fetch
调用上设置明确的优先级仍然是不可能的,但是有一个由谷歌驱动的新的API提案称为"优先级提示"。
到目前为止,没有任何浏览器支持;Chrome 70已经发布了一个实验性的实现。
标题>减少非关键Fetch API请求的网络争用
优先级提示可以用来降低非关键读取的优先级API请求,以避免它们与更重要的请求争用。
新闻站点对文章内容进行重要的Fetch API请求可能最终会与对不太重要的资源的请求进行竞争喜欢相关内容
<script> // Critical Fetch request for article content fetch('/api/articles.json').then(/*...*/) // Request for related content contending with the above request fetch('/api/related.json').then(/*...*/) </script>
通过在第二个Fetch请求中使用重要性属性,我们可以提示该请求的优先级较低,从而减少它与文章内容的Fetch请求相争。我们也可以显式声明第一个请求的优先级是高的,以便Fetch请求没有高优先级的浏览器知道这对页面很重要。
<script> // Critical Fetch request for article content fetch('/api/articles.json', { importance: 'high' }).then(/*...*/) // Request for related content now reduced in priority // reducing the opportunity for contention fetch('/api/related.json', { importance: 'low' }).then(/*...*/) </script>
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在映射数组中添加换行符
- 正在将数据主题添加到所有项目
- ZeroClipboard-在复制之前添加到值
- 我可以在json对象中添加一个函数吗
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何添加浮动和非浮动,其他
- 添加文字和评论功能更新Div
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 在函数中添加数组元素的数值
- 如何将歌曲添加到jPlayer
- 在html Select中添加搜索
- Java脚本时间添加
- FabricJs-限制主对象内添加对象的移动区域
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 动态地将css文件添加到head(IE中的优先级颠倒)
- 您可以为AJAX调用添加优先级吗?
- 在angularJS中根据自定义属性优先级向列表元素中添加类