当前位置: 首页 > 面试题库 >

使用AJAX / jQuery刷新图像

慕学海
2023-03-14
问题内容

这可能是一个简单的问题,但我很困惑,只是不知道从哪里开始。

我有一个PHP脚本(image_feed.php),该脚本返回图像的URL。每次调用此UR1时,它都会返回可用的最新图像(该图像每隔几秒钟更改一次)。

我想发生的是,当页面加载时,有一个对image_feed.php的AJAX调用,该调用返回了最新的URL。然后将该UR1插入HTM1,以替换适当的图像src。

5秒后,我希望重复该过程,并更新图像。但是,我不希望在加载完成之前交换图像,并且我想避免在加载新图像之前出现空白。

目前,我有以下jQuery,它仅将image_feed.php的返回值直接加载到名为#image1的div中。image_feed.php的格式正确,可以提供html图像标签。

    $(document).ready(function(){
    var $container = $("#image1");
    $container.load('image_feed.php?CAMERA_URI=<?=$camera_uri;?>')
    var refreshId = setInterval(function()
    {
        $container.load('image_feed.php?CAMERA_URI=<?=$camera_uri;?>');
    }, 5000);

});

这可行,但是有问题。每次刷新图像时,在IE和Firefox中都会得到一个与图像大小相同的空白,因为下载图像需要一段时间。

我知道我需要image_feed.php将普通URL返回到图像。然后,我使用一些jQuery请求此URL,对其进行预加载,然后将其与现有图像交换。

但是,我仍然在努力达到目标。有人能给我一些帮助吗?


问题答案:
$(document).ready(function() {
    var $img = $('#image1');
    setInterval(function() {
        $.get('image_feed.php?CAMERA_URI=<?=$camera_uri;?>', function(data) {
            var $loader = $(document.createElement('img'));
            $loader.one('load', function() {
                $img.attr('src', $loader.attr('src'));
            });
            $loader.attr('src', data);
            if($loader.complete) {
                $loader.trigger('load');
            }
        });
    }, 5000);
});

未经测试。上面的代码应在后台加载新图像,然后在加载时设置旧图像的src属性。

用于加载的事件处理程序将仅执行一次。.complete对于可能已缓存要加载图像的浏览器,此检查是必需的。在这种情况下,这些浏览器可能会触发load事件,也可能不会触发事件。



 类似资料:
  • 问题内容: 我有一个包含许多ListView的页面,我希望用户能够对它们进行排序和翻页。我不想每次都回发并重新绑定整个页面,而是希望通过jQuery / AJAX有选择地针对所涉及的控件进行操作。我很容易在页面中对WebMethod进行客户端调用- 我的问题是如何通过jQuery将返回的数据返回到ListView中? (注意:我不想使用UpdatePanel!) 问题答案: 我不确定仅由于List

  • 问题内容: 我正在尝试使用AJAX和JQuery(在Django中)刷新页面的特定部分。如何获取仅重新显示div而不重新显示整个页面的信息。 这是我的看法。 当前,它将整个html页面放入#tag_page div中。我希望它用新的#tag_page div替换旧的#tag_page div。如果替换为它,则将整个页面刷新到应有的状态,但是我认为刷新整个页面是一种浪费。 如果有更好的方法,请告诉我

  • 问题内容: 我正在开发一个新项目http://www.hotwirerevealed.com,该项目可以在hotwire.com上显示/识别酒店。输入状态和目的地后,我有了一个使用jquery的.post方法发布的javascript函数。发布请求转到输出html的php页面,我使用jquery的html方法将内容放置在页面上。 像这样 我有超链接,指向要在灯箱中使用的酒店 我试图使用jQuery

  • 本文向大家介绍JQuery 又谈ajax局部刷新,包括了JQuery 又谈ajax局部刷新的使用技巧和注意事项,需要的朋友参考一下 JQuery 再谈ajax局部刷新。 案例: 描述: 1. 点击登录则弹出登录对话框 2. 如果用户名密码不正确,则提示错误信息 3. 当输入信息正确,则刷新登录信息,显示用户名和退出按钮 4. 点击退出弹出提示信息,然后确定后再次刷新用户名,回到了第一幅图片的位置

  • 问题内容: 我想在单击按钮时重新加载div。我不想重新加载整个页面。 这是我的代码: HTML: 单击按钮后,应该重新加载而不加载或刷新整个页面。 以下是我尝试过但无法正常工作的Jquery:- 请提出建议。 这是我页面上的DIV,其中包含一些产品的图片和序列号…这将是第一次加载时来自数据库的信息。但是,如果用户遇到问题,他将单击“再次捕获”按钮“ ”,这将再次加载这些信息。 Div的HTML代码

  • 问题内容: 有谁对jQuery Ajax刷新DIV的最佳选择有好的建议? 以下是我要实现的目标: 强调性能的优化。 就像Google + / Facebook一样,左侧将显示导航,右侧将显示内容窗格(DIV)。 当用户单击每个导航时,内容窗格将相应刷新,而不刷新整个页面。 问题答案: 在服务器上使用不同的方法来生成内容的每个部分。这样,您可以简单地调用该方法以获取特定的内容,而不是调用通用方法并仅