震惊!2020年你竟然可以用浏览器做这些 (一)

前言

现在都2020年了,如果还只用浏览器刷刷网页看看视频岂不是浪费,浏览器可以做很多amazing的事情,笔者整合了当今浏览器中不知名功能的列表,以供读者探索。

此列表不是面向专业的技术人员
相反,希望能成为“原来浏览器还能干这个的!”的清单
很多情况下,所列功能未能成为通用标准,一下部分功能仅在某些浏览器或配置下可用

清单
  1. prefers-color-scheme 偏好的配色方案 传送门✈️

许多操作系统提供浅色或深色主题(尤其是macOS上的深色模式),网站可以检测到首选的配色方案并将网站配色与其统一,其本质是一个CSS语法:

<div class="day">Day (initial)</div>
<div class="day light-scheme">Day (changes in light scheme)</div>
<div class="day dark-scheme">Day (changes in dark scheme)</div> <br>

<div class="night">Night (initial)</div>
<div class="night light-scheme">Night (changes in light scheme)</div>
<div class="night dark-scheme">Night (changes in dark scheme)</div>
<style>
.day   { background: #eee; color: black; }
.night { background: #333; color: white; }

@media (prefers-color-scheme: dark) {
  .day.dark-scheme   { background:  #333; color: white; }
  .night.dark-scheme { background: black; color:  #ddd; }
}

@media (prefers-color-scheme: light) {
  .day.light-scheme   { background: white; color:  #555; }
  .night.light-scheme { background:  #eee; color: black; }
}

.day, .night {
  display: inline-block;
  padding: 1em;
  width: 7em;
  height: 2em;
  vertical-align: middle;
}
</style>

在这里插入图片描述

  1. prefers-reduced-motion 偏好的动画方案 传送门✈️

同上面的色彩方案一样,这个也是一个css特性,prefers-reduced-motion 用于检测用户的系统是否被开启了动画减弱功能。在这里插入图片描述
在这里插入图片描述

  1. Payment Request API 付款请求接口 传送门✈️

Payment Request API 是一个旨在消灭结账表单的系统。它显著改进了购物流程期间的用户工作流,为用户提供更一致的体验,并让电商公司能够轻松地利用各种完全不同的支付方式。Payment Request API 不是一种新的支付方式,也不与支付处理机构直接整合;它是一种旨在实现以下目标的处理层:

  • 让浏览器充当商家、用户和支付处理机构的中介
  • 尽可能标准化支付通信流程
  • 为不同的安全支付方式提供无缝支持
  • 适用于任何移动或非移动浏览器、设备或平台在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  1. Web Share API 网页分享接口 传送门✈️

在这里插入图片描述
网页可以像原生应用那样使用系统提供的分析能力
在这里插入图片描述

在这里插入图片描述

if (navigator.share) {
  navigator.share({
    title: 'web.dev',
    text: 'Check out web.dev.',
    url: 'https://web.dev/',
  })
    .then(() => console.log('Successful share'))
    .catch((error) => console.log('Error sharing', error));
}
  1. Push API 推送接口 传送门✈️

Push API 给与了Web应用程序接收从服务器发出的推送消息的能力,无论Web应用程序是否在用户设备前台,甚至刚加载完成。这样,开发人员就可以向用户投放异步通知和更新,从而让用户能更及时地获取新内容。在这里插入图片描述

  1. Service Worker 后台独立于网页运行的脚本 传送门✈️

丰富的离线体验、定期的后台同步以及推送通知等通常需要将面向本机应用的功能将引入到网页应用中。 Service Worker 提供所有这些功能所依赖的技术基础。

什么是 Service Worker

Service Worker 是浏览器在后台独立于网页运行的脚本,它打开了通向不需要网页或用户交互的功能的大门。 现在,它们已包括如推送通知和后台同步等功能。 将来,Service Worker 将会支持如定期同步或地理围栏等其他功能。 本教程讨论的核心功能是拦截和处理网络请求,包括通过程序来管理缓存中的响应。

这个 API 之所以令人兴奋,是因为它可以支持离线体验,让开发者能够全面控制这一体验。

在 Service Worker 出现前,存在能够在网络上为用户提供离线体验的另一个 API,称为 AppCache。 AppCache API 存在的许多相关问题,在设计 Service Worker 时已予以避免。

Service Worker 相关注意事项:

  • 它是一种 JavaScript Worker,无法直接访问 DOM。 Service Worker 通过响应 postMessage 接口发送的消息来与其控制的页面通信,页面可在必要时对 DOM 执行操作。
  • Service Worker 是一种可编程网络代理,让您能够控制页面所发送网络请求的处理方式。
  • Service Worker 在不用时会被中止,并在下次有需要时重启,因此,您不能依赖 Service Worker onfetch 和 onmessage 处理程序中的全局状态。 如果存在您需要持续保存并在重启后加以重用的信息,Service Worker 可以访问 IndexedDB API。
  • Service Worker 广泛地利用了 promise,因此如果您不熟悉 promise,则应停下阅读此内容,看一看 Promise 简介。
    *在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jBrowserDriver是一款采用纯Java编写的无图形化浏览器,基于WebKit,和Selenium兼容。通过Maven安装:<dependency>   <groupId>com.machinepublishers</groupId>   <artifactId>jbrowserdriver</artifactId>   <version>0.16.1</version> </dependency>使用示例代码:import org.openqa.selenium.WebDriver; import com.machinepublishers.jbrowserdriver.Timezone; import com.machinepublishers.jbrowserdriver.JBrowserDriver; import com.machinepublishers.jbrowserdriver.Settings; public class Example {   public static void main(String[] args) {     // You can optionally pass a Settings object here,     // constructed using Settings.Builder     JBrowserDriver driver = new JBrowserDriver(Settings.builder().       timezone(Timezone.AMERICA_NEWYORK).build());     // This will block for the page load and any     // associated AJAX requests     driver.get("http://example.com");     // You can get status code unlike other Selenium drivers.     // It blocks for AJAX requests and page loads after clicks      // and keyboard events.     System.out.println(driver.getStatusCode());     // Returns the page source in its current state, including     // any DOM updates that occurred after page load     System.out.println(driver.getPageSource());     // Close the browser. Allows this thread to terminate.     driver.quit();   } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值