我有一些代码需要在 Flask返回响应后执行.我认为设置像Celery这样的任务队列并不复杂.关键要求是Flask必须在运行此函数之前将响应返回给客户端.它不能等待函数执行.
关于这一点存在一些现有的问题,但是没有一个答案似乎解决了在将响应发送到客户端之后运行任务,它们仍然同步执行然后返回响应.
我在一个网页上有一个Coda滑块(手工制作,不使用插件,但这是无关紧要的),外部div有一个border-radius.
一堆内部div具有背景颜色,但是当我希望它们在圆角处时,它们会在角落顶部伸出.
有没有办法实现这个目标?
我正在尝试使用JavaScript和jQuery获取页面的总高度,因此我可以检查页面是否足够长以显示某些内容,但是在我的测试中,我无法获得页面的总高度.
我在互联网上环顾四周,但这样的事情似乎没有得到很好的记录,因为我能找到的是scrollHeight,正如我可能提到的那样,它不起作用.
有没有办法用jQuery找到它?
有什么方法来检测,如果电脑很慢,无法运行一些代码(通过打开的jQuery动画关闭或只是运行一个函数,如果它是快)?
我知道这个问题可能非常简单,但我注意到在一些较慢的计算机上,即使是最简单的边缘动画移动也是在看起来不太好的闪光中完成的.
更新:
我试图运行的代码只是一堆动画; 它们都花费相同的时间,但在较慢的浏览器上,动画会像您在观看缓冲视频时看到的那样进行分段.
我正在进行一个网站设计,我需要一种方法来淡化身体标签的背景图像,当它完全加载时(可能然后暂停500毫秒).
如果你看到八月的网站设计,你会看到背景渐渐消失; 但是,这是通过Flash背景完成的.有没有办法用jQuery或JavaScript做到这一点?
2010年9月19日更新:
所以对于那些来自Google的人来说(这是目前"负载背景淡出"的头号结果),我只是想为每个人制作一个更清晰的实现示例.
<div id="backgroundfade"></div>在页脚中的某处添加代码(如果您不希望DOM混乱,也可以通过JavaScript附加此代码).
风格如此 -
#backgroundfade {
position: fixed;
background: #FFF /* whatever color your background is */
width: 100%;
height: 100%;
z-index: -2;
}
Run Code Online (Sandbox Code Playgroud)
然后将其添加到JavaScript脚本文件中(需要jQuery):
$(document).ready(function() {
$('#backgroundfade').fadeOut(1000);
});
Run Code Online (Sandbox Code Playgroud)
#backgroundfade在DOM完成后,这会在1秒内淡化元素(覆盖"实际背景"的框).
我试图将一个块元素(WordPress标题框,包括图像)居中,但它不起作用.我试过了:
.imagecenter {
margin-left: auto;
margin-right: auto;
display: block;
}
Run Code Online (Sandbox Code Playgroud)
但它不会起作用.我也试过了,margin-left: auto; margin-right: auto;但那也行不通.有什么我做错了吗?这就是W3C文档中我应该做的.
在HTML中看起来像这样(澄清):
<div id="content">
........post here......
<div class="wpcaption imagecenter" style="width:225px">
<img src="blah" />
Blah.
</div>
.........post here......
</div>
Run Code Online (Sandbox Code Playgroud)
我无法控制元素的宽度.它由用户设置.用户希望div居中.它不起作用.我查看了文档,但它仍然无法正常工作.
编辑:我已经尝试过MARGIN-LEFT:AUTO AND MARGIN-RIGHT:AUTO.它不起作用.
在我的Sinatra项目中,我希望能够同时停止错误代码和错误消息:
halt 403, "Message!"
Run Code Online (Sandbox Code Playgroud)
反过来,我想要在错误页面模板中呈现(使用ERB).例如:
error 403 do
erb :"errors/error", :locals => {:message => env['sinatra.error'].message}
end
Run Code Online (Sandbox Code Playgroud)
然而,显然env['sinatra.error'].message(也就是自述文件和每个网站都说我应该这样做)并没有暴露我提供的信息.(此代码在运行时返回undefined method `message' for nil:NilClass错误.)
我已经搜索了4-5个小时并尝试了所有内容,但我无法弄清楚消息通过ERB呈现给我的位置!有谁知道它在哪里?
(似乎我能想到的唯一选择是写这个而不是halt上面的代码,每次我想停止:
halt 403, erb(:"errors/error", :locals => {m: "Message!"})
Run Code Online (Sandbox Code Playgroud)
这段代码有效.但这是一个混乱的解决方案,因为它涉及硬编码错误ERB文件的位置.)
(如果你想知道,这个问题是不相关的show_exceptions,因为这两个配置标记set :show_exceptions, false,并set :show_exceptions, :after_handler没有什么区别.)
我在页面上有一些链接,目的是"走到顶端",通过将页面滚动到顶部并获得一个漂亮的动画来完成.我注意到,有时在页面滚动时,用户会想要向下滚动,例如,但这是不可能的.屏幕只会断断续续,但会继续制作动画,直到它到达顶部.
我想在用户尝试滚动时停止动画,因此我编写了这段代码:
$('#gototop').click(function() {
$('body').animate({scrollTop:0},3000);
$(window).scroll(function () {
$('body').stop();
});
return false;
})
Run Code Online (Sandbox Code Playgroud)
这段代码存在问题,因为animate()计为滚动,因此它只会在停止之前移动一点点.
我也尝试过按键作为选项,但鼠标滚动不会注册为键.
当用户滚动时,有没有办法调用我的滚动功能,而不是动画()?
作为我的一个网站的一部分的复活节彩蛋,我在我的页脚#left标记了一个"复活节"蛋,每次点击它都会改变,显示有趣的消息:
$('#left').append(" <span><a href='#' id='dontclick1'>Don't click.</a></span>");
// time for some fun
$('#dontclick1').click(function() {
$('#left span').html("<a href='#' id='dontclick2'>I told you not to click.</a>");
return false;
});
$('#dontclick2').click(function() {
$('#left span').html('<a href="#" id="dontclick3">Now you will suffer.</a>');
return false;
});
$('#dontclick3').click(function() {
$('#left span').html('<a href="#" id="dontclick4">Shame!</a>');
return false;
});
$('#dontclick4').click(function() {
$('#left span').html('<a href="#" id="dontclick5">You shouldn't click.</a>');
return false;
});
$('#dontclick5').click(function() {
$('#left span').html('<a href="#" id="dontclick6">But you did. Sigh.</a>');
return false;
});
Run Code Online (Sandbox Code Playgroud)
在我的页脚中,append会动态添加消息,因此没有JavaScript的人不会看到无法点击的内容.但是,第一次单击它时,它会更改为第二条消息,但在此之后它将无法工作.
我究竟做错了什么?是因为return false里面有吗?没有它,它会跳转到页面顶部.我糊涂了.
我正试图通过jQuery提交一个带有AJAX的表单:
$('.submit input').click(function() {return false;});
$("#addcourseform").submit(function(event) {
event.preventDefault();
var formcont = $(this).serialize();
$.post({
type:"POST",
url: "<?php echo base_url(); ?>handover/courseadd",
data: formcont,
success: function(returned) {
alert("It worked: "+returned);
}
});
});
Run Code Online (Sandbox Code Playgroud)
上面的代码包含在ready()中,在控制台中没有返回错误,以及所有好东西.但是,似乎将[object Object]附加到POST URL的末尾.由于我使用CodeIgniter,因此它会引发400 Bad Request,因为它包含URL中的不允许的字符.
如何添加jQuery?
编辑后固定:
对于那些未来读过这篇文章并认为我是白痴的人,我确实使用了post()语法错误.
我有以下代码:
$('body').mousemove(function() {
$('#covering').fadeOut(500);
$('.block div div').fadeOut(250)
$('.block div div').css('margin-top','160px')
$('.block div div').fadeIn(250);
});
Run Code Online (Sandbox Code Playgroud)
基本上我要做的是有一个"覆盖"div淡出(如在这个问题中)并且有一些块元素的内部div淡出,默默地移动,并且淡入以获得无缝效果.
但是,运行此操作时,每次移动鼠标时,都会运行上述所有操作.它提出了一个问题,因为这不是我想要发生的事情(我希望它发生一次,就是这样),我猜它会减慢浏览器的速度,可能会导致堆叠.
我想我曾经在某处读过如果一旦执行一次就停止执行某些事情,但是我记不住了,所以有没有办法做到这一点?谢谢.
我正在建立一个平台.在我的代码中,有一个看起来像这样的数组(PHP):
$entries = array('p01','p02','g01','g02','a001','a002')
Run Code Online (Sandbox Code Playgroud)
我需要编写一个基于第一个字母过滤数组的脚本.例如,要求那些带有起始字母"p"的人会给我
$filtered_entries = array('p01','p02');
Run Code Online (Sandbox Code Playgroud)
同样地,如果我要求那些带有首字母"g"或"a"的人,那么它也会给我这些.知道怎么做到这一点?