在移动Chrome浏览器中启用“数据保护程序”选项时,网站的行为会有所不同。确定是否使用JavaScript启用Data Saver的最佳方法是什么。
答案 0 :(得分:4)
现在official documentation is saying到2018年,您可以像这样检测JS中的数据保存选项:
if ("connection" in navigator) {
if (navigator.connection.saveData === true) {
// Implement data saving operations here.
}
}
答案 1 :(得分:1)
我是否可以检测用户是否已启用数据压缩代理?
是的,有点儿。自Chrome 49起(2016年2月2日测试版,预计稳定日期 3月下旬)当用户在Chrome中启用了数据保护功能时 Chrome会为每个HTTP添加一个值为“on”的保存数据HTTP标头 请求。关闭此功能时,HTTP标头将不存在。 使用它作为用户意识到的意图信号 他们正在使用的数据量而不是他们的连接 通过数据压缩代理。例如,HTTP标头将是 当用户通过HTTPS访问站点时设置,即使是安全连接 不会通过数据压缩代理传递。
答案 2 :(得分:1)
正如常见问题解答中所述,我尝试扫描标题列表并检查Save-Data
参数是否存在。
我正在关注移动Chrome中的标题,
通过扫描此数据,如果有Save-Data
标头,我们可以假设Data Saver
为on
/*
* This is PHP Code
* will not work on clicking "Run Code Snippet"
* Host this code on php server as .php file
*/
<?php
header('Content-Type: application/json');
$headers = getallheaders();
$datasaver = false;
foreach($headers as $key=>$val){
if(strtolower($key) == 'save-data' && $val == 'on'){
$datasaver = true;
}
}
$status = array('data-saver'=>$datasaver);
echo json_encode($status);
?>
&#13;