- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经看到许多变体来回答这个问题,而其中许多显然是根据反馈为其他人工作的;它们都不适合我。
在我遇到的答案中,它们似乎都暗示了这里发布的答案的一些变体: How to show Page Loading div until the page has finished loading
我认为我遇到的问题可能是我不理解在页面的生命周期完成之前如何在页面上呈现任何内容?
这对我来说似乎最适合描述我在尝试实现已提供的任何解决方案时遇到的问题。
在每个实例中,包含我的加载图像的 div 都在页面完全加载后显示,但为时已晚。
我可以看到在页面加载后实现对服务器的 Ajax 调用按预期工作;并且我还可以看到Update Panels等的实现,方便局部页面的渲染,进一步辅助针对性的效果。我只是不明白,也无法让它在页面初始加载“期间”工作。
我错过了什么?
在脚本标签中:
<script>
showProgress();
function ShowProgress() {
$('.loading').show();
};
</script>
正下方的正文标签:
<body>
<div class="loading">
Loading...
<img src="../Images/spinner.gif" width="200" height="200" />
</div>
</body>
这是我执行过的最基本和最简单的实现,但 div 仅在每个实例中的页面加载完成后加载。
我尝试了其他几种排列方式,但它们都呈现相同的结果。
所以我的问题是,是否可以在正在加载的同一页面上实现加载指示器。到目前为止,我的努力表明答案是否定的,但也许我遗漏了一些关键因素。
添加:
在页面加载完成之前,服务器端正在执行“很多”初步工作,因为有人告诉我这应该可行;也许实现服务器端 ScriptManager 以在页面生命周期的早期阶段调用客户端代码可能有助于确保 div 在该阶段的早期呈现可能有所帮助?
目前我只是在推测,但不幸的是,在这种情况下,如果不是不可能的话,我将非常难以使用现有代码来说明问题。
不过,我会看看能否在原型(prototype)中模拟等待时间并在此处发布代码;前提是结果相同。
==========================
好消息是我实际上可以在按比例缩小的原型(prototype)中成功地模拟这个问题。不幸的是,坏消息是发布的唯一答案并不能解决问题。我“认为”答案可能在纯 HTML 标记的条件下有效,但在 ASP.NET 中,页面呈现过程的工作方式略有不同。
这是代码。我已经添加了一个工作线程来模拟等待实际应用程序的服务器端调用,但您会注意到,具有建议解决方案的代码版本都不起作用。
此外,在 IE 上运行时,建议的答案存在一个问题。在 IE11 上有更具体的说明。
JavaScript 运行时错误:无法获取未定义或空引用的属性“appendChild”发生在 document.body.appendChild(div) 行;虽然,我相当确定这是一个 IE 问题;它不会在 Chrome 中抛出错误,但也不会加载加载图像。
背后的代码:
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (PerformWork())
return;
}
protected bool PerformWork()
{
var time = new TimeSpan(0, 0, 20);
Thread.Sleep(time);
return true;
}
}
我最初发布的带有简单版本的标记:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script>
showProgress();
function ShowProgress() {
$('.loading').show();
};
</script>
<body>
<form id="form1" runat="server">
<div class="loading">
Loading...
<img src="../Images/spinner.gif" width="200" height="200" />
</div>
</form>
</body>
</html>
到目前为止唯一建议答案的标记:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script>
(function () {
var div = document.createElement('div');
div.id = 'loader';
div.setAttribute('style', 'position:absolute; left:0; top:0; background:white; color:red;');
div.textContent = 'Loading...plz wait!!!'
var loadImg = document.createElement('img');
loadImg.src = 'http://downgraf.com/wp-content/uploads/2014/09/01-progress.gif';
loadImg.width = 50;
loadImg.height = 50;
div.appendChild(loadImg);
document.body.appendChild(div);
})();
window.onload = function () {
document.querySelector('#loader').remove();
// when page load completes it removes the loader div.
};
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<img src='http://www.hd-freewallpapers.com/tpl/download.php?filename=best-high-quality-hd-wallpapers-3D-2560x1440.jpg' alt='' />
<img src='http://www.hd-freewallpapers.com/tpl/download.php?filename=best-quality-hd-wallpapers-free-download-3D-2560x1440.jpg' alt='' />
<img src='http://www.hd-freewallpapers.com/tpl/download.php?filename=butterfly-wallpaper-for-computer-2560x1440.jpg' alt='' />
</div>
</form>
</body>
</html>
最佳答案
你可以这样做,在页面加载时创建一个动态 div 并将其推送到文档中,当页面加载时将其从页面中删除:
// This IIFE will execute as soon as page is in the window. This creates a dynamic div and
// a dynamic img with a gif src and appends it in the document.
(function() {
var div = document.createElement('div');
div.id = 'loader';
div.setAttribute('style', 'position:absolute; left:0; top:0; background:white; color:red;');
div.textContent = 'Loading...plz wait!!!'
var loadImg = document.createElement('img');
loadImg.src = 'http://downgraf.com/wp-content/uploads/2014/09/01-progress.gif';
loadImg.width=50;
loadImg.height=50;
div.appendChild(loadImg);
document.body.appendChild(div);
})();
window.onload = function() {
document.querySelector('#loader').remove();
// when page load completes it removes the loader div.
};
<img src='http://www.hd-freewallpapers.com/tpl/download.php?filename=best-high-quality-hd-wallpapers-3D-2560x1440.jpg' alt=''>
<img src='http://www.hd-freewallpapers.com/tpl/download.php?filename=best-quality-hd-wallpapers-free-download-3D-2560x1440.jpg' alt=''>
<img src='http://www.hd-freewallpapers.com/tpl/download.php?filename=butterfly-wallpaper-for-computer-2560x1440.jpg' alt=''>
此处window.onload
将确保页面的每个元素都已加载。
关于javascript - 图片上传时可以显示吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34065847/
我的Angular-Component位于一个flexbox(id =“log”)中。可以显示或隐藏flexbox。 我的组件内部有一个可滚动区域,用于显示日志消息。 (id =“message-li
我真的很困惑 有一个 phpinfo() 输出: MySQL 支持 启用 客户端 API 版本 5.5.40 MYSQL_MODULE_TYPE 外部 phpMyAdmin 显示: 服务器类型:Mar
我正在研究这个 fiddle : http://jsfiddle.net/cED6c/7/我想让按钮文本在单击时发生变化,我尝试使用以下代码: 但是,它不起作用。我应该如何实现这个?任何帮助都会很棒
我应该在“dogs_cats”中保存表“dogs”和“cats”各自的ID,当看到数据时显示狗和猫的名字。 我有这三个表: CREATE TABLE IF NOT EXISTS cats ( id
我有一个字符串返回到我的 View 之一,如下所示: $text = 'Lorem ipsum dolor ' 我正在尝试用 Blade 显示它: {{$text}} 但是,输出是原始字符串而不是渲染
我无法让我的链接(由图像表示,位于页面左侧)真正有效地显示一个 div(包含一个句子,位于中间)/单击链接时隐藏。 这是我的代码: Practice
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
最初我使用 Listview 来显示 oracle 结果,但是最近我不得不切换到 datagridview 来处理比 Listview 允许的更多的结果。然而,自从切换到数据网格后,我得到的结果越来越
我一直在尝试插入一个 Unicode 字符 ∇ 或 ▽,所以它显示在 Apache FOP 生成的 PDF 中。 这是我到目前为止所做的: 根据这个基本帮助 Apache XSL-FO Input,您
我正在使用 node v0.12.7 编写一个 nodeJS 应用程序。 我正在使用 pm2 v0.14.7 运行我的 nodejs 应用程序。 我的应用程序似乎有内存泄漏,因为它从我启动时的大约 1
好的,所以我有一些 jQuery 代码,如果从下拉菜单中选择了带有前缀 Blue 的项目,它会显示一个输入框。 代码: $(function() { $('#text1').hide();
当我试图检查 Chrome 中的 html 元素时,它显示的是 LESS 文件,而 Firefox 显示的是 CSS 文件。 (我正在使用 Bootstrap 框架) 如何在 Chrome 中查看 c
我是 Microsoft Bot Framework 的新手,我正在通过 youtube 视频 https://youtu.be/ynG6Muox81o 学习它并在 Ubuntu 上使用 python
我正在尝试转换从 mssql 生成的文件到 utf-8。当我打开他的输出 mssql在 Windows Server 2003 中使用 notepad++ 将文件识别为 UCS-2LE我使用 file
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在尝试执行单击以打开/关闭一个 div 的功能。 这是基本的,但是,点击只显示 div,当我点击“关闭”时,没有任何反应。 $(".inscricao-email").click(function
假设我有 2 张卡片,屏幕上一次显示一张。我有一个按钮可以用其他卡片替换当前卡片。现在假设卡 1 上有一些数据,卡 2 上有一些数据,我不想破坏它们每个上的数据,或者我不想再次重建它们中的任何一个。
我正在使用 Eloquent Javascript 学习 Javascript。 我在 Firefox 控制台上编写了以下代码,但它返回:“ReferenceError:show() 未定义”为什么?
我正在使用 Symfony2 开发一个 web 项目,我使用 Sonata Admin 作为管理面板,一切正常,但我想要做的是,在 Sonata Admin 的仪表板菜单上,我需要显示隐藏一些菜单取决
我试图显示一个div,具体取决于从下拉列表中选择的内容。例如,如果用户从列表中选择“现金”显示现金div或用户从列表中选择“检查”显示现金div 我整理了样本,但样本不完整,需要接线 http://j
我是一名优秀的程序员,十分优秀!