클라이언트/사용자/고객이 제출 버튼을 누르면 매우 긴 작업이 실행됩니다. 장고를 사용하여 질의가 끝날 때까지 쿼리를 실행하라는 메시지를 어떻게 표시 할 수 있습니까?서버가 쿼리를 실행하는 동안 메시지 표시 Django
답변
이 내가 버튼을 누른를 결정하는 몇 가지 코드를 jQuery를 사용하여 포함하고 결국 무엇을 :
<form>
<div id="loading" style="display:none;">Finding all words, may take a long time</div>
<div id="form_input_things">
<input type="submit" name="_save" value="Save" />
<input type="submit" name="_get_words" value="Get Words" />
{{ form.as_p }}
</div>
</form>
<script>
$("form").submit(function() {
{
if($("[submit_button_pressed=Save]").get(0) === undefined)
{
$('#loading').show();
$('#form_input_things').hide();
}
}
return true;
});
$(":submit").live('click', function() {
$(this).attr("submit_button_pressed", $(this).val());
});
</script>
이 코드는 초기 질문에 응답하지 않습니다. 그건 그렇고, 내 대답을 받아들이지 않는 것에 대해 감사합니다 ... –
그것은 내 질문에 대답합니다. 메시지가 나타나고 쿼리/제출이 새 페이지를 반환하면 결과가 표시됩니다. 또한 사용하기가 더 쉽습니다. – Martlark
이렇게하려면 Ajax를 사용해야합니다.
JQuery를 사용하는 예를 보겠습니다. 템플릿에,이 양식이있는 경우 :
<form id="my_form" action="" method="post">
<label for="age">Age:</label>
<input type="text" name="age" id="age"/>
<input type="submit" value="Submit"/>
</form>
<div id="loading" style="display:none;">Loading...</div>
당신이 이미 가지고있는 JQuery와 lib에 포함 가정의 일부 자바 스크립트 만들어 보자 : 당신은 완전히 일에 대한 코드의 조각을 사용자 정의 할 수 있습니다
$(function(){
$('#my_form').submit(function(event){
event.preventDefault();
alert('user submitted the form');
$('#loading').show();
$.post('my_url',
{age : $('#age').val()},
function(data){
$('#loading').hide();
alert('server finished to process data.');
});
});
});
무엇 네가 원해. 그리고 당신은 아약스에서 더 디버깅을 원하는 경우, 당신은이 방법으로 다음과 같은 당신의 ajaxSetup를 선언하는 것이 좋습니다 :
function ajaxSetup(){
$.ajaxSetup({
error:function(x,e){
if(x.status==0){
alert('You are offline!!\n Please Check Your Network.');
}else if(x.status==404){
alert('Requested URL not found.');
}else if(x.status==500){
alert('Internal Server Error.\n' + x.responseText);
}else if(e=='parsererror'){
alert('Error.\nParsing JSON Request failed.');
}else if(e=='timeout'){
alert('Request Time out.');
}else {
alert('Unknow Error.\n'+x.responseText);
}
}
});
}
- 1. SQL 쿼리를 실행하는 동안 진행률 표시 표시
- 2. 레일즈가 쿼리를 실행하는 동안 진행률 표시 줄을 표시합니다.
- 3. Django 메시지 프레임 워크 메시지 표시
- 4. 5 초 동안 메시지 표시
- 5. MySQL 쿼리를 실행하는 동안 오류가 발생했습니다.
- 6. 쿼리를 실행하는 동안 대괄호 오류가 잘못되었습니다.
- 7. 다음 mysql 쿼리를 실행하는 동안 오류가 발생했습니다.
- 8. 쿼리를 실행하는 동안 'select'키워드 근처의 구문이 잘못되었습니다.
- 9. OPENDATASOURCE를 사용하여 쿼리를 실행하는 동안 오류가 발생했습니다.
- 10. SELECT 쿼리를 실행하는 동안 Postgres 오류
- 11. 서버가 페이지를 생성하는 동안 화면로드 표시
- 12. Django : 데이터베이스 쿼리를 수행하는 동안 UnboundLocalError
- 13. SQL 서버가 업데이트 쿼리를 실행하는 데 너무 오래 걸립니다.
- 14. 프로세스가 PHP를 실행하는 동안 코드 블록을 표시
- 15. 매크로를 실행하는 동안 진행률 표시 줄
- 16. 개발 모드에서 django 트렁크를 실행하는 동안 관리 미디어가 사라졌습니다.
- 17. 프로덕션 DJango 서버가 작동합니까?
- 18. 쿼리 완료 메시지 표시
- 19. 서버가 작동하는 동안 리디렉션
- 20. JavaScript를 사용하여 메시지 표시
- 21. Django - 작업 진행률 표시
- 22. 스레드가 C#에서 실행되는 동안 GUI에 메시지 표시
- 23. 개발 서버를 실행하는 동안 Django App에서 범위를 벗어난 인덱스를 나열합니다.
- 24. 실행하는 동안 linq 쿼리를 기반으로 전역 변수 값을 변경하는 방법
- 25. SQLite 쿼리를 실행하는 동안 알 수없는 레코드 번호
- 26. UnsupportedOperationException를 Neo4j 서버에 자바 사이퍼 쿼리를 실행하는 동안 난
- 27. 일괄 삽입을 수행하는 동안 select 쿼리를 실행하는 방법
- 28. PHP와 AJAX로 실행하는 동안 MySQL 쿼리를 죽이는 경우
- 29. 스크립트에서 sql 쿼리를 실행하는 동안 메시지를 표시하지 않습니다.
- 30. 서버가 응답하기를 기다리는 동안 JSP 페이지에 애니메이션 표시
왜 작업에 엔큐를 넣지 않으시겠습니까? (스레드, 셀러리, ....). (죄송합니다, 이것은 예상 답변이 아닙니다. 응답은 '제출 버튼'을 클릭 할 때로드 메시지 표시, 요청을받은 새 페이지가 이전 페이지를 오버라이드하고 '로드 메시지'가 제거 된 것일 수 있습니다. : http://thecrumb.com/2011/01/21/simple-loading-dialog-wjquery-ui/) – danihp
제출시 프론트 엔드 자바 스크립트를 사용하여 메시지를 표시하십시오. 이것은 더 큰 문제의 시작처럼 들리지만 비동기 솔루션을 사용하는 것을 고려해야합니다. –