Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提高JavaScript速度_Javascript_Performance_Image Loading - Fatal编程技术网

提高JavaScript速度

提高JavaScript速度,javascript,performance,image-loading,Javascript,Performance,Image Loading,我的网站有一个JavaScript,它可以将一个页面拉到用户屏幕宽度的50%,同时将其他组件推到左侧,为about页面腾出空间 问题是,当用户第一次单击about按钮时,这个JavaScript速度非常慢,因为Chrome会等待图像加载。对于其他web浏览器,JavaScript速度很快,但加载图像需要一秒钟。第一次使用按钮后,“关于”幻灯片工作正常。但这是第一次真正重要 有没有一种方法可以解决这个问题,这样JavaScript可以快速工作,并且在单击按钮时图像会立即出现?将用户定向到加载页面可

我的网站有一个JavaScript,它可以将一个页面拉到用户屏幕宽度的50%,同时将其他组件推到左侧,为about页面腾出空间

问题是,当用户第一次单击about按钮时,这个JavaScript速度非常慢,因为Chrome会等待图像加载。对于其他web浏览器,JavaScript速度很快,但加载图像需要一秒钟。第一次使用按钮后,“关于”幻灯片工作正常。但这是第一次真正重要

有没有一种方法可以解决这个问题,这样JavaScript可以快速工作,并且在单击按钮时图像会立即出现?将用户定向到加载页面可以解决这个问题吗?如果是这样的话,你能告诉我一个地方,告诉我如何使用JavaScript以这种方式加载站点吗

我真的很感谢你的帮助。

你的图像太大了。因此,首先要将它们调整到更易于管理的大小

但是你可以做的另一件事是预加载你的图像。这里有一个简单的包装器,您可以使用它来加载一些图像,并知道它们何时准备就绪

//Url->Promise
变量图像=函数(src){
返回新承诺(功能(通过、失败){
var i=新图像()
i、 src=src
i、 onload=event=>pass(i)
})
}
变量url=”http://www.runthisday.com/img/the_hammer.jpg"
然后(elem=>document.body.appendChild(elem))
您的图像是巨大的。因此,首先要将它们调整到更易于管理的大小

但是你可以做的另一件事是预加载你的图像。这里有一个简单的包装器,您可以使用它来加载一些图像,并知道它们何时准备就绪

//Url->Promise
变量图像=函数(src){
返回新承诺(功能(通过、失败){
var i=新图像()
i、 src=src
i、 onload=event=>pass(i)
})
}
变量url=”http://www.runthisday.com/img/the_hammer.jpg"

image(url).then(elem=>document.body.appendChild(elem))
如果图像总是相同的,那么您可能可以存储在web缓存中。。。永远。。。为了等待第一次


另一个选择是不加载大图片,也许你可以使用一些重复的标题图片。。。在某些地方,当需要加载图像时…

如果图像总是相同的,您可能可以将其存储在web缓存中。。。永远。。。为了等待第一次


另一个选择是不加载大图片,也许你可以使用一些重复的标题图片。。。在某些地方,甚至在需要时加载图像…

您需要将图像缩小。您的hammer图像的分辨率为5000x333px,将其设置为内容区域的大小,并在保存时将photoshop或gimp中的质量设置为50%左右。现在,当文件只需要是其当前大小的15-20%时,您正在拉入大量图像数据……请注意,Javascript没有任何问题,这个问题纯粹是基于资产的。您还可以先加载低分辨率图像(并且非常快),甚至可能在显示“关于”框之前,先在屏幕外加载,然后再显示该图像,然后加载全分辨率图像,完成后替换低分辨率图像。我还建议减少像素数,尽管-5000x333非常大。这个答案可能对你有帮助。现在想想,一个5000万的X33图像对于移动用户来说是非常密集的,页面加载可能会给他们带来一些MB数据,而且加载速度非常慢,这意味着它们不会粘在你的网站上,谢谢大家!这真的很有帮助。@c_Harris,不客气,祝你好运!:)您需要将图像缩小。您的hammer图像的分辨率为5000x333px,将其设置为内容区域的大小,并在保存时将photoshop或gimp中的质量设置为50%左右。现在,当文件只需要是其当前大小的15-20%时,您正在拉入大量图像数据……请注意,Javascript没有任何问题,这个问题纯粹是基于资产的。您还可以先加载低分辨率图像(并且非常快),甚至可能在显示“关于”框之前,先在屏幕外加载,然后再显示该图像,然后加载全分辨率图像,完成后替换低分辨率图像。我还建议减少像素数,尽管-5000x333非常大。这个答案可能对你有帮助。现在想想,一个5000万的X33图像对于移动用户来说是非常密集的,页面加载可能会给他们带来一些MB数据,而且加载速度非常慢,这意味着它们不会粘在你的网站上,谢谢大家!这真的很有帮助。@c_Harris,不客气,祝你好运!:)