3

我想从我的数据库中获取图像,并将其用作背景。这是微不足道的,但有没有比我目前的方法更好/更快的方法。

目前,我使用 Javascript(在 中<head>)加载我的背景图片,因为我的 CSS 是链接的而不是内部的:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type='text/javascript'>
    $(document).ready(function(){
        $('body').css('background', 'url(/_images/galleries/lg_<?php echo getBackgroundImage(); ?>) no-repeat top center white');
    });
</script>

加载页面后,加载背景大约需要半秒钟。我认为延迟可归因于加载外部 JS 等。此外,上述代码作为一个组件包含在内,因此我不必在网站的每个页面中复制/粘贴该代码。<body>不包含在此包含的组件中。

更快更好的方法吗?

4

2 回答 2

6

由于您正在向文档中添加脚本,因此您可能只需添加一个<style>带有您需要的 CSS 的块。

于 2012-05-30T21:18:14.567 回答
0

我看到这已经回答了但是......

我认为延迟可以归因于加载外部 JS

是的。默认情况下,Javascript 会阻止。虽然有一些方法可以解决这个问题,但它们依赖于延迟 javascript 的加载。而且您仍然必须等待 javascript 加载,然后才能加载图形以放入后台。使用 j08691 的方法可以避免这个问题,但是如果您希望脚本运行得更快,则可以在 CSS 文件中内联图像数据(您可以在 HTML 中执行此操作,但是图像的缓存受到 html 缓存的限制 - 通常CSS 文件将更易于缓存)。当然,如果您想支持较旧的浏览器,那么您将需要 Varies: User-agent 标头和用于不兼容浏览器的不同代码。

于 2012-05-30T22:03:12.210 回答