最近我一直试图创建XHR,我发现Ajax是实现它的唯一顺利方式。抱歉我对Ajax缺乏了解,我刚刚启动它,我可能没有正确地做好一切。
让我们说有一个特定的形式:
<div style="margin: 0;float: left;width: 60px;height: 60px;cursor: pointer;text-decoration:none;display: block;padding: 0;">
<form id="item_selection1" action="{% url 'Home:AccountPage' %}" method="post">
{% csrf_token %}
<input class="sendtrade" name="sendtrade1" type="submit" value="Send Offer">
</form>
这是views.py:
...
if request.POST.get('sendtrade1'):
...
openbox = "true"
...
这就是我呈现响应的方式(我知道这不是Ajax兼容的,假设dict已经转换为json):
res = render(request, 'Home/account.html', {'other_keys': 'other_values', 'openbox': openbox})
return HttpResponse(res)
如果openbox是&#34; true&#34;:
,我通常会打开divif ("{{ openbox }}" == "true" ) {
$("#someDiv").css("display", "block")
}
else if ( "{{ openbox }}" == "false" ) {
$("#someDiv").css("display", "none")
}
但是,如果我在收到邮件请求后在另一个进程上执行某些嵌套函数,那该怎么办:
from multiprocessing import Process
...
if request.POST.get('sendtrade1'):
...
openbox = "true"
...
def func():
time.sleep(10)
openbox = "false"
proc = Process(target=func)
proc.start()
...
...
如何在不重新加载页面的情况下将其传递给Ajax / Javascript?因此,当提交表单时,在第一个10秒#someDiv
可见,但10秒后它会再次消失?
如果不能用Ajax完成,那么另一个平滑的替代方案是什么?