搜索
首页web前端js教程如何使用网络信息API来改善响应式网站

How to Use the Network Information API to Improve Responsive Websites

如何使用网络信息API来改善响应式网站

钥匙要点

  • >网络信息API可以通过提供有关用户网络连接的信息,包括它是否是计量和带宽的估计来显着增强用户体验。此信息可用于有条件地加载图像,视频,字体等,即使在较慢或计量的连接上也确保最佳性能。
  • >
  • 实现网络信息API涉及使用JavaScript访问API的属性和方法。 API对象由Navigator.Connection返回,并提供两个仅读取属性:带宽和计量。这些属性可用于根据用户的连接状态有条件地加载高分辨率图像或其他大资产。
  • 尽管具有潜在的好处,但网络信息API当前的浏览器支持有限,并且可能会发生变化。但是,对于移动友好的网站或应用程序,仍然值得考虑,因为它可以帮助防止页面变得太大且在移动网络上加载缓慢。如果API更改,则可以对相关功能进行更新,以确保站点继续做出适当的反应。
  • 响应式网络设计彻底改变了网络。当在一系列不同的设备和屏幕上查看时,一个站点可以调整其布局。所需的只是一些媒体查询,以检测屏幕尺寸并加载替代样式或样式表。 但是,使用屏幕尺寸来检测浏览器功能类似于通过查看无线电来判断汽车的速度。现代智能手机和平板电脑的分辨率越来越大,并且会愉快地显示出典型的桌面视图。如果该视图添加了许多字体,图像或其他资产,则移动用户可能会收到降级 - - 体验,因为它们处于较慢或计量的连接上。
网络信息api 网络信息API可能会有所帮助。它指示用户是否处于计量连接(例如付款方式),并提供带宽的估计值。使用此信息,可以有条件地加载图像,视频,字体和其他资源。在基本层面上,您可以覆盖媒体查询,以确保在有限的网络上保留移动布局。 >浏览器支持

尽管网络信息API草案规范在2011年发布,但此时仅提供Firefox和Chrome提供实验支持。在我们获得供应商共识之前,API可能会发生变化:

评估带宽很困难。当您在移动和Wi-Fi网络之间移动或切换时,它可能会经常发生变化。网络容量可能很好,但是与特定服务器的连接不会得出。保持带宽估算值也可能是处理器和网络密集型。

  • >该设备如何知道您的连接是否已计?即使是快速的Wi-Fi,我可以提到的某些酒店和机场也可能会勒索成本。一个选项是让设备在建立新连接时提示您。
  • 幸运的是,我们可以使用对象检测来检测API的存在。

    api基础知识

    网络信息API对象由Navigator.connection返回。为了确保跨浏览器兼容性,我们需要:
    <span>var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;</span>
    您可能需要将Navigator.msconnection添加到该列表中,尽管IE通常会实现非排名的API。 我们的联系 对象提供两个只读属性:
    • 带宽 - 双重表示Mb/s(每秒兆字节)的当前带宽的估计。如果用户离线和无穷大,则该值将为零。请注意,大多数网络提供商每秒引用了Megabits中的值,典型的繁忙移动3G连接将约为400Mbps〜 = 400,000位/s〜 = 50kb/s〜 = 0.05MB/s。
    • metered - 一个布尔值,如果是,则意味着用户的连接受到限制,并且在可能的情况下应限制带宽的使用。
    • 例如:
    最后,当连接状态更改时,我们可以执行更改事件处理程序,例如
    <span>if (connection && !connection.metered && connection.bandwidth > 2) {
    </span><span>// load high-resolution image
    </span><span>var img = document.getElementById("kitten");
    </span>
    img<span>.src = "/images/kitten_hd.jpg";
    </span><span>}</span>
    在此代码中,当可用高带宽时,将设置全局highbandwidth变量。其他代码可以做出相应的反应,例如当高键宽为false时:
    <span>// default bandwidth
    </span><span>var highBandwidth = false;
    </span>
    <span>// bandwidth change handler
    </span><span>function <span>BandwidthChange</span>() {
    </span>highBandwidth <span>= (!connection.metered && connection.bandwidth > 2);
    </span><span>console.log(
    </span><span>"switching to " +
    </span><span>(highBandwidth ? "high" : "low") +
    </span><span>" bandwidth mode"
    </span><span>);
    </span><span>}
    </span>
    <span>// Network Information object
    </span><span>var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
    </span>
    <span>// initialize
    </span><span>if (connection) {
    </span>connection<span>.addEventListener("change", BandwidthChange);
    </span><span><span>BandwidthChange</span>();
    </span><span>}</span>
      高分辨率图像未加载
    1. 不必要的字体未加载
    2. ajax轮询放缓
    3. ajax超时参数增加了
    为了使事情变得容易一点,您可以将课程附加到带宽截图中的身体标签上 功能,例如
    <span>var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;</span>
    这使我们能够有条件地加载项目,例如CSS中的背景图像,例如
    <span>if (connection && !connection.metered && connection.bandwidth > 2) {
    </span><span>// load high-resolution image
    </span><span>var img = document.getElementById("kitten");
    </span>
    img<span>.src = "/images/kitten_hd.jpg";
    </span><span>}</span>
    仍然可以在媒体查询加载的桌面布局中检查此条件。

    您是否应该使用网络信息API? 在撰写本文时,网络信息API几乎没有浏览器支持,并且可能会更改。就是说,如果您要创建必须在移动设备上使用的网站或应用程序,那么现在一些计划可以阻止您的页面达到1.7MB。如果API发生变化,您只需要更新带宽的函数,您的网站将做出适当的反应。 我当然认为网络信息API值得考虑。

    你吗? 关于网络信息API

    的常见问题(常见问题解答)

    >网络信息API是什么,它如何工作?

    >网络信息API是一个工具,可提供有关设备用于与Web通信的网络连接的信息。它允许Web应用程序访问设备网络类型和速度的状态,可用于优化内容交付。例如,如果用户在慢速网络上,则网站可以选择发送较低质量的图像以提高负载时间。

    >

    >我如何使用网络信息API来改善我的响应式网站? 🎜>网络信息API可用于增强您响应网站上的用户体验。通过检测用户的网络条件,您可以相应地调整网站的行为。例如,如果用户的网络缓慢,则可以减少发送的数据量,例如较低的分辨率图像或更少的视频内容。这可以显着提高网站的加载速度和整体性能。

    是否所有浏览器支持的网络信息API?

    >网络信息API不受所有浏览器的支持。截至目前,它得到了Chrome,Opera和Android浏览器的支持。在实施任何新的API之前,请在“我可以使用”等网站上查看最新的浏览器兼容性信息。 >实现网络信息API涉及使用JavaScript访问网络信息API的属性和方法。您可以使用Navigator.connection或Navigator.MozConnection属性来获取代表用户连接的网络信息对象,然后使用此对象的属性和事件处理程序来获取有关连接的信息并对连接中的更改做出反应。

    >

    >我可以从网络信息API中获取哪些信息?>

    检测离线状态吗? Navigator.Online属性返回一个布尔值,该值指示用户的设备在线还是离线。是一个估计值,可能不是完全准确的。它基于最近观察到的网络条件,可能无法反映当前网络条件。因此,应将其用作指南,而不是网络条件的确定性度量。

    >

    可以与服务工作者一起使用网络信息API吗?与服务工作者。这使您可以根据用户的网络条件来调整服务工作者的行为,例如当用户在慢速网络上时更积极地缓存。

    使用网络信息API有什么隐私含义?

    >

    网络信息API可能会根据其网络条件来用于指纹用户。但是,API仅提供有关网络的粗粒信息,并且该信息也可用于本机应用程序,因此额外的隐私风险最小。

    网络信息API的使用情况有哪些?网络信息API可用于改善用户体验。例如,视频流网站可以根据用户的网络速度自动选择适当的视频质量。新闻网站可以使用它来决定是加载高分辨率图像还是低质量图像。网络应用程序可以在慢速网络上警告用户,并且某些功能可能无法最佳地工作。

    以上是如何使用网络信息API来改善响应式网站的详细内容。更多信息请关注PHP中文网其他相关文章!

    声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    JavaScript评论:使用//和 / * * / * / * /JavaScript评论:使用//和 / * * / * / * /May 13, 2025 pm 03:49 PM

    JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

    Python vs. JavaScript:开发人员的比较分析Python vs. JavaScript:开发人员的比较分析May 09, 2025 am 12:22 AM

    Python和JavaScript的主要区别在于类型系统和应用场景。1.Python使用动态类型,适合科学计算和数据分析。2.JavaScript采用弱类型,广泛用于前端和全栈开发。两者在异步编程和性能优化上各有优势,选择时应根据项目需求决定。

    Python vs. JavaScript:选择合适的工具Python vs. JavaScript:选择合适的工具May 08, 2025 am 12:10 AM

    选择Python还是JavaScript取决于项目类型:1)数据科学和自动化任务选择Python;2)前端和全栈开发选择JavaScript。Python因其在数据处理和自动化方面的强大库而备受青睐,而JavaScript则因其在网页交互和全栈开发中的优势而不可或缺。

    Python和JavaScript:了解每个的优势Python和JavaScript:了解每个的优势May 06, 2025 am 12:15 AM

    Python和JavaScript各有优势,选择取决于项目需求和个人偏好。1.Python易学,语法简洁,适用于数据科学和后端开发,但执行速度较慢。2.JavaScript在前端开发中无处不在,异步编程能力强,Node.js使其适用于全栈开发,但语法可能复杂且易出错。

    JavaScript的核心:它是在C还是C上构建的?JavaScript的核心:它是在C还是C上构建的?May 05, 2025 am 12:07 AM

    javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

    JavaScript应用程序:从前端到后端JavaScript应用程序:从前端到后端May 04, 2025 am 12:12 AM

    JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

    Python vs. JavaScript:您应该学到哪种语言?Python vs. JavaScript:您应该学到哪种语言?May 03, 2025 am 12:10 AM

    选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。

    JavaScript框架:为现代网络开发提供动力JavaScript框架:为现代网络开发提供动力May 02, 2025 am 12:04 AM

    JavaScript框架的强大之处在于简化开发、提升用户体验和应用性能。选择框架时应考虑:1.项目规模和复杂度,2.团队经验,3.生态系统和社区支持。

    See all articles

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    Video Face Swap

    Video Face Swap

    使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

    热门文章

    热工具

    螳螂BT

    螳螂BT

    Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

    EditPlus 中文破解版

    EditPlus 中文破解版

    体积小,语法高亮,不支持代码提示功能

    VSCode Windows 64位 下载

    VSCode Windows 64位 下载

    微软推出的免费、功能强大的一款IDE编辑器

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    功能强大的PHP集成开发环境

    PhpStorm Mac 版本

    PhpStorm Mac 版本

    最新(2018.2.1 )专业的PHP集成开发工具