gpt4 book ai didi

javascript - 动态添加 JavaScript 和 CSS : Speed and Performance (Need-to-Know)

转载 作者:可可西里 更新时间:2023-11-01 16:33:39 27 4
gpt4 key购买 nike

有谁知道,在宏大的范围内,在网页处于事件状态时动态添加和删除样式表的成本是多少(如下所示的实时脚本操作)。我知道在所有 CSS 编译速度上都比其他编译器快得多,但我想了解在页面上时有多快以及是否/如何影响 HTTP 请求。我还想知道如果最初加载脚本然后将其换出,JavaScript 如何影响页面。

我希望减轻在浏览器和跨平台网页中必须从“全屏”切换到“移动”的压力。我正在通过 JavaScript 和 CSS 组合使用媒体查询,以便在不同的脚本和样式表中为所有(尽可能多的)服务。

...
<head>
<meta charset="utf-8">
<title>...</title>
<script type="text/javascript">
function loadSecondary(){
//For full screen do nothing.
if(window.innerWidth > 652 && document.getElementsByTagName("link")[0].id == "mobile") {
//Remove the current style sheet
sheet = document.getElementById("mobile");
sheet.parentNode.removeChild(sheet);
//Load the page again.
loadPrimary();
} else if(window.innerWidth < 651 && document.getElementsByTagName("link")[0].id == "full") {
//Remove the current style sheet
sheet = document.getElementById("full");
sheet.parentNode.removeChild(sheet);
//Load the page again.
loadPrimary();
}
}
function loadPrimary() {
var fileref = document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");

if(window.innerWidth > 652) {
fileref.setAttribute("id", "full");
fileref.setAttribute("href", 'css/stylesFull.css');
document.getElementsByTagName("head")[0].appendChild(fileref);
console.log("Full");
} else {
fileref.setAttribute("id", "mobile");
fileref.setAttribute("href", 'css/stylesMobile.css');
document.getElementsByTagName("head")[0].appendChild(fileref);
console.log("Mobile");
}
}
</script>
</head>
<body onload="loadPrimary()" onresize="loadSecondary()">
...

最佳答案

除非脚本包含具有高时间或空间复杂度的算法,否则执行应该接近即时(小于 10 毫秒)。 css 可能会更快生效。

唯一需要考虑的速度或性能是这些文件的加载本身。如果它们被缓存,它也应该非常快。然而,如果它们没有被缓存并且之前没有被访问过,那么它们的加载时间将取决于几个因素(例如连接性、带宽等)。

下载实际文件的这些因素都是在速度和性能方面应该考虑的因素。为了缓解它,可以预加载文件以触发缓存。如果做到了这一点,使用或交换 css 和 javascript 文件应该不会对性能或速度产生负面影响。

关于javascript - 动态添加 JavaScript 和 CSS : Speed and Performance (Need-to-Know),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24964020/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com