Django-Autocomplete-Light Widget 在 Django-Rest-Framework 中导致加载时间过长

Django-Autocomplete-Light Widget causing long loading times in Django-Rest-Framework

我目前正在使用 Django-Rest-Framework 开发 API。 API 本身工作正常,我现在正在尝试对资源实施过滤。这也很有魅力,但问题是,当我尝试使用 Django-Autocomplete-Light 中的 ModelSelect2-Widget 来处理 Browsable API 中关系的过滤时,(因为那里可以有很多可能的选项可供选择,如果需要,我正在使用自动完成小部件动态加载更多选项)由于脚本,浏览器突然加载页面的时间太长。 (Firefox居然问要不要关机jQuery)

我设法将问题缩小到 DRF 使用的脚本和 DAL 需要的脚本之间的某种问题。

这些是由 Django Rest Framework (Source) 随页面加载的脚本:

  <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>

以及 Django-Autocomplete-Light (Source for autocomplet.init.js and jquery.init.js and Source for select2.js and select2.full.js):

<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 的脚本有关,因为我可以注释掉其中一个,页面再次正常运行。

Firefox 运行时分析的屏幕截图: 脚本需要“美化”的数据越多,情况就越糟。

有人知道如何解决这个问题吗?

所以我自己解决了这个问题... 我只是把autocomplete.init.jsselect2.js的内容放在了$(document).ready(function(){...})中。为什么?我不知道,但它似乎工作得很好。 ¯\_(ツ)_/¯

如果有人知道对此的解释,请随时分享。