Sai*_*han 8 javascript ajax jquery
我正在创建一些使用ajax获取页面信息的插件.现在有不同的插件可以执行不同的功能.
所有插件都需要单独使用,但我还想添加它们可以很好地协同工作的功能.
所有不同的插件都有自己的JavaScript文件和功能.这在HTTP请求方面没有问题,因为大多数人都有插件,当网站被剥离时,所有文件合并为一个.
-
现在我的问题.正如我所说,不同的插件获得了网站的不同部分.例如,帖子计数,用户推文,用户统计,发表评论.
现在我可以指定从网站调用此信息的优先级.我想不能将它们全部合并到一个ajax调用中,因为它们都是单独的工作组件.
任何人都知道一个很好的解决方案,我可以在首先获得评论,然后是统计数据等等.
我选择的JS框架是jQuery.
仍然无法为XMLHttpRequestnorwindow.fetch调用设置明确的优先级,但是有一个由 Google 推动的新 API 提案,称为“优先提示”。
https://wicg.github.io/priority-hints/#examples
到目前为止,任何浏览器都不支持它;Chrome 70 已经在标志后面发布了一个实验性的实现。
减少来自非关键 Fetch API 请求的网络争用
Priority Hints 可用于降低非关键 Fetch API 请求的优先级,以避免它们与更重要的请求竞争。
对文章内容发出关键 Fetch API 请求的新闻站点可能最终会与对不太重要的资源(如相关内容)的请求进行竞争。
Run Code Online (Sandbox Code Playgroud)<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 请求尚未具有高优先级的浏览器知道它对页面很重要。
Run Code Online (Sandbox Code Playgroud)<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>
一种通用方法是为挂起的AJAX调用实现优先级队列.每个插件都会将其调用放在队列中,并在调用时具有相关的优先级,并且AJAX队列处理器将按优先级顺序通过队列.
这是一个jQuery优先级队列插件的示例:
http://benalman.com/code/projects/jquery-message-queuing/docs/files/jquery-ba-jqmq-js.html
此外,这里已经为AJAX请求实现了一个:
| 归档时间: |
|
| 查看次数: |
7307 次 |
| 最近记录: |