현재 Django-Rest-Framework를 사용하는 API에서 작업하고 있습니다. API 자체가 잘 작동하고 있으며 이제는 리소스 필터링을 구현하려고합니다. 이것은 매력처럼 작동하고 있지만, 문제는 Django-Autocomplete-Light에서 ModelSelect2-Widget을 사용하여 Browsable API에서 관계 필터링을 처리하려고 시도 할 때입니다. (많이있을 수 있으므로 선택할 수있는 옵션 중에서 필요에 따라 더 많은 옵션을 동적으로로드하기 위해 자동 완성 위젯을 사용하고 있습니다.) 브라우저가 갑자기 스크립트로 인해 페이지를로드하는 데 너무 오래 걸립니다. (파이어 폭스는 실제로 jQuery를 종료해야하는지 여부를 묻는다.)Django-Rest-Framework에서 장시간로드하는 Django-Autocomplete-Light 위젯
나는 DRF가 사용하는 스크립트와 DAL이 필요로하는 스크립트 사이의 문제점을 일종의 문제로 좁힐 수 있었다. (Source for autocomplet.init.js and jquery.init.js 및 Source for select2.js and select2.full.js)
<script>
window.drf = {
csrfCookieName: "{{ csrf_cookie_name|default:'csrftoken' }}"
};
</script>
<script src="{% static "rest_framework/js/jquery-1.12.4.min.js" %}"></script>
<script src="{% static "rest_framework/js/ajax-form.js" %}"></script>
<script src="{% static "rest_framework/js/csrf.js" %}"></script>
<script src="{% static "rest_framework/js/bootstrap.min.js" %}"></script>
<script src="{% static "rest_framework/js/prettify-min.js" %}"></script>
<script src="{% static "rest_framework/js/default.js" %}"></script>
<script>
$(document).ready(function() {
$('form').ajaxForm();
});
</script>
그리고 장고 - 자동 완성 - 빛에 의해 :
이
장고 나머지 프레임 워크에 의해 페이지 ( Source)에로드 된 스크립트입니다<script src="{% static 'autocomplete_light/jquery.init.js' %}"></script>
<script src="{% static 'autocomplete_light/autocomplete.init.js' %}"></script>
<script src="{% static 'autocomplete_light/vendor/select2/dist/js/select2.full.js' %}"></script>
<script src="{% static 'autocomplete_light/select2.js' %}"></script>
문제는 prettify-min.js
과 DAL의 스크립트에 연결되어있는 것 같습니다. 그 중 하나를 주석 처리하고 페이지가 다시 정상적으로 작동합니다.
파이어 폭스의 런타임 분석 스크린 샷 : 더 많은 데이터가 스크립트에 의해 "미리 확인"되어야 할 필요가 있습니다.
누구든지 이것을 해결하는 방법을 알고 있습니까?