javascript - 如果 php 在 javascript 中没有应答,则设置图像

标签 javascript

我在 php 中有一个脚本来创建图形(使用 jpgraph),并且我使用 javascript 在我的页面中设置该图像:

$("#page_image").attr('src', "generate_graph.php");

有时我的服务器无法工作,我得到一个绿色图像告诉我错误,而其他人我得到的只是一个崩溃图标图像(未找到图像等)。

是否可以设置超时,如果几秒钟后我什么也没得到,则设置已创建的备份镜像?

或者,我必须在 php 服务器端执行此操作吗?

最佳答案

简单地使用 .load() 和 setTimeout()

$(function(){

  var imageLoadTimeout = 1000; // millisecs
  
  // Timeout, if image not loaded in imageLoadTimeout time then we display error.jpg
  var timeout = setTimeout(function(){
     $("#page_image").attr("src", "error.jpg");
  }, imageLoadTimeout);
  
  
  $("#page_image").load(function(){
    clearTimeout(timeout);  // if image loaded sucessfully, clear the timeout
  });
  
  $("#page_image").attr("src", "generate_graph.php"); // Try to load image
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img id="page_image" />

关于javascript - 如果 php 在 javascript 中没有应答,则设置图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29718548/

相关文章:

javascript - 带有 CSS 的警告框

javascript - 如何在 HTML 表单上制作 Tab 循环

javascript - 单击页面卸载事件上的链接

JavaScript 架构/应用程序结构最佳实践?

javascript - Javascript 中的 -1 小时时间戳

javascript - 从 HTML 中调用 javascript 函数

javascript - 无法使用 JQuery 显示模态框

javascript - 如何使部分透明的 .png 下方的 <div> 保持可滚动?

javascript - 为网页创建 JQuery 单字段确认对话框的简单方法

javascript - <img/> 标签的 onLoad 事件在初始页面访问时不会触发