结合js与媒体查询(viewport相关)
Combining js with media queries ( viewport related )
最近(一位客户)要求我使用 js 片段根据分辨率更改元视口标签宽度。他们说这可能会提高网站 mobile/tablet 版本的性能。但我拒绝相信它,因为在我看来它看起来与视口标签 width=device-width 有点相同,我会说更糟。
这是片段:
function setviewport(){
if(window.innerHeight > window.innerWidth){
if(screen.height > screen.width){
deviceWidth = screen.width;
}else{
deviceWidth = screen.height;
}
}else{
if(screen.height > screen.width){
deviceWidth = screen.height;
}else{
deviceWidth = screen.width;
}
}
if(deviceWidth<=512){
$("#viewport").attr("content","width=480,initial-scale="+deviceWidth/480);
}else if(deviceWidth>=960){
$("#viewport").attr("content","width=1024");
}else{
$("#viewport").attr("content","width=768,initial-scale="+deviceWidth/768);
}
}
也许我什么都不懂,这确实是一个比 width=device-width 更好的选择。如果是,您能解释一下为什么吗?它会提高性能吗?提前致谢。
您的客户似乎担心 javascript 的性能提升超过 css 媒体查询以创建响应式网页设计。
这可以归因于人们之间的一个普遍神话:
browser must wait until it downloads, parses, and applies the relevant
CSS before it can render the page on the screen.
不遵守这一点可能会导致“无样式内容的闪现”(FOUC),这会造成糟糕的用户体验。另一方面,Javascript 可以异步加载,因此不会干扰页面呈现。
这不是真的。现代渲染引擎比我们许多人认为的要聪明得多。
但是,当您调整浏览器大小时,您在网站上使用了多少不同的媒体查询确实很重要window。这可能会导致 CPU 和内存负载甚至会使您的浏览器崩溃 但这不是有效的性能测试 (没有用户经常调整其浏览器的大小,我们应该始终只关注非调整大小的事件)。
此外,某些较旧的浏览器(IE-8 和更早版本)不支持媒体查询,在这种情况下,您可能希望使用 javascript 库(respond.js),但除此之外,javascript 在提供比 css 媒体查询更大的 性能提升 方面没有优势。
来源:
最近(一位客户)要求我使用 js 片段根据分辨率更改元视口标签宽度。他们说这可能会提高网站 mobile/tablet 版本的性能。但我拒绝相信它,因为在我看来它看起来与视口标签 width=device-width 有点相同,我会说更糟。
这是片段:
function setviewport(){
if(window.innerHeight > window.innerWidth){
if(screen.height > screen.width){
deviceWidth = screen.width;
}else{
deviceWidth = screen.height;
}
}else{
if(screen.height > screen.width){
deviceWidth = screen.height;
}else{
deviceWidth = screen.width;
}
}
if(deviceWidth<=512){
$("#viewport").attr("content","width=480,initial-scale="+deviceWidth/480);
}else if(deviceWidth>=960){
$("#viewport").attr("content","width=1024");
}else{
$("#viewport").attr("content","width=768,initial-scale="+deviceWidth/768);
}
}
也许我什么都不懂,这确实是一个比 width=device-width 更好的选择。如果是,您能解释一下为什么吗?它会提高性能吗?提前致谢。
您的客户似乎担心 javascript 的性能提升超过 css 媒体查询以创建响应式网页设计。
这可以归因于人们之间的一个普遍神话:
browser must wait until it downloads, parses, and applies the relevant CSS before it can render the page on the screen.
不遵守这一点可能会导致“无样式内容的闪现”(FOUC),这会造成糟糕的用户体验。另一方面,Javascript 可以异步加载,因此不会干扰页面呈现。
这不是真的。现代渲染引擎比我们许多人认为的要聪明得多。
但是,当您调整浏览器大小时,您在网站上使用了多少不同的媒体查询确实很重要window。这可能会导致 CPU 和内存负载甚至会使您的浏览器崩溃 但这不是有效的性能测试 (没有用户经常调整其浏览器的大小,我们应该始终只关注非调整大小的事件)。
此外,某些较旧的浏览器(IE-8 和更早版本)不支持媒体查询,在这种情况下,您可能希望使用 javascript 库(respond.js),但除此之外,javascript 在提供比 css 媒体查询更大的 性能提升 方面没有优势。
来源: