我正在制作一个支持ajax的实验室调度程序,而且一些ajax操作并不是很快.
在Gmail中,当您转到收件箱,发送消息等时,浏览器会像加载一样(在FF中停止按钮变为启用状态,出现进度条),但它不在新页面上,而是通过AJAX完成.
他们如何做到这一点?我有一个小的spinny指示器,但是让浏览器像加载它一样很好.有任何想法吗?
使用Comet或Ajax Long Pull技术时 - 通常使用iframe.虽然iframe正在等待关闭的长连接,但浏览器正在旋转它的悸动(进度/加载指示器).
一些网站,例如etherpad.com,设法让它停止.
他们是如何做到的呢?
我已经了解了图像完全加载后获取图像尺寸的各种方法,但是一旦刚开始加载,是否可以获得任何图像的尺寸?
我没有通过搜索找到太多(这让我相信它不可能),但浏览器(在我的情况下是Firefox)显示我在标题后面的新标签中打开的任何图像的尺寸它刚开始加载图像让我希望实际上有一种方法,我只是错过了正确的关键字来找到它.
我对Flask来说还是比较新的,一般来说还是一个网络菜鸟,但到目前为止我已经取得了一些好成绩.现在我有一个用户输入查询的表单,该表单被赋予一个函数,该函数可能需要5到30秒才能返回结果(使用Freebase API查找数据).
问题是我不能让用户知道他们的查询在这段时间内正在加载,因为只有在函数完成其工作后才会加载结果页面.有没有办法在正在进行时显示加载消息?我发现一些Javascript可以在页面元素仍然加载时显示加载消息,但我的等待时间发生在'render_template'之前.
我把一些示例代码拼凑在一起,只是为了证明我的情况:
蟒蛇:
from flask import Flask
from flask import request
from flask import render_template
import time
app = Flask(__name__)
def long_load(typeback):
time.sleep(5) #just simulating the waiting period
return "You typed: %s" % typeback
@app.route('/')
def home():
return render_template("index.html")
@app.route('/', methods=['POST'])
def form(display=None):
query = request.form['anything']
outcome = long_load(query)
return render_template("done.html", display=outcome)
if __name__ == '__main__':
#app.debug = True
app.run()
Run Code Online (Sandbox Code Playgroud)
摘自index.html:
<body>
<h3>Type anything:</h3>
<p>
<form action="." method="POST">
<input type="text" name="anything" placeholder="Type anything here">
<input type="submit" name="anything_submit" value="Submit"> …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用javascript动态加载css文件,不能使用任何其他js库(例如jQuery).
加载css文件但我似乎无法获得回调来为它工作.以下是我正在使用的代码
var callbackFunc = function(){
console.log('file loaded');
};
var head = document.getElementsByTagName( "head" )[0];
var fileref=document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", url);
fileref.onload = callbackFunc;
head.insertBefore( fileref, head.firstChild );
Run Code Online (Sandbox Code Playgroud)
使用以下代码添加脚本标记以加载js文件工作并触发回调:
var callbackFunc = function(){
console.log('file loaded');
};
var script = document.createElement("script");
script.setAttribute("src",url);
script.setAttribute("type","text/javascript");
script.onload = callbackFunc ;
head.insertBefore( script, head.firstChild );
Run Code Online (Sandbox Code Playgroud)
我在这里做错了吗?任何其他可以帮助我实现这一目标的方法都会受到高度赞赏吗?
我知道互联网上有成千上万的例子,但我想要的是我已经拥有的脚本,在检索数据时显示加载的gif图像.我的java知识很差,因此我问如何更改以下内容:
<script type="text/javascript">
$(document).ready(function(){
function getData(p){
var page=p;
$.ajax({
url: "loadData.php?id=<? echo $id; ?>",
type: "POST",
cache: false,
data: "&page="+ page,
success : function(html){
$(".content").html(html);
}
});
}
getData(1);
$(".page").live("click", function(){
var id = $(this).attr("class");
getData(id.substr(8));
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
我的div在这里:
<div class="content" id="data"></div>
Run Code Online (Sandbox Code Playgroud)
谢谢.约翰
基本上这就是问题(括号很重要)
base64AngularJS中包含数据的变量加载图像我试图找到从包含base64编码图像数据的变量加载图像源的正确方法(例如使用从画布中拉出toDataURL();).
起初我只是尝试这样:
<img src="{{image.dataURL}}" />
Run Code Online (Sandbox Code Playgroud)
其中图像是范围变量,其变量dataURL包含base64数据.这实际上工作得很好,唯一的问题是404我的控制台出错了.像这样的东西:
不太好看.当我尝试这样一个更有棱角的风格解决方案时:
<img data-ng-src="image.dataURL" />
Run Code Online (Sandbox Code Playgroud)
图像根本没有加载.我做了一个你可以找到的小提琴HERE
有什么建议如何在我的控制台中摆脱这个错误?
格鲁夫兔子是对的.这<img data-ng-src="{{image.dataURL}}" />工作......
可以找到工作解决方案 HERE
我目前正在使用DDD工作很多,并且在从其他聚合根加载/操作聚合根时遇到问题.
对于我模型中的每个聚合根,我也有一个存储库.存储库负责处理根的持久性操作.
假设我有两个聚合根,包含一些成员(实体和值对象).
AggregateRoot1和AggregateRoot2.
AggregateRoot1有一个引用AggregateRoot2的实体成员.
此外,当我在AggregateRoot1中的实体与AggregateRoot2之间创建关联时,是应该通过实体还是通过AggregateRoot2的存储库来完成?
希望我的问题有道理.
[编辑]
当前的解决方案
在Twith2Sugars的帮助下,我提出了以下解决方案:
如问题中所述,聚合根可以具有引用其他根的子项.将root2分配给root1的其中一个成员时,root1的存储库将负责检测此更改,并将其委派给root2的存储库.
public void SomeMethod()
{
AggregateRoot1 root1 = AggregateRoot1Repository.GetById("someIdentification");
root1.EntityMember1.AggregateRoot2 = new AggregateRoot2();
AggregateRoot1Repository.Update(root1);
}
public class AggregateRoot1Repository
{
public static void Update(AggregateRoot1 root1)
{
//Implement some mechanism to detect changes to referenced roots
AggregateRoot2Repository.HandleReference(root1.EntityMember1, root1.EntityMember1.AggregateRoot2)
}
}
Run Code Online (Sandbox Code Playgroud)
这只是一个简单的例子,没有Demeter法或其他最佳原则/实践包括:-)
进一步评论赞赏.
domain-driven-design aggregate loading repository aggregateroot
我想创建一个具有非常灵活的图形用户界面(skinnable)的项目.为了实现这一点,我想从外部资源(例如网站)加载NSBundle.捆绑包应包含与主项目中的某些属性和方法相对应的nib(IBOutlets和IBActions)
Apple似乎限制了以这种方式使用NSBundle的可能性.有什么方法可以让我的工作吗?如果以传统方式不可能,那么什么是可推荐的替代方法?