长时间加载Javascript(模态窗口)

时间:2016-11-10 08:17:00

标签: javascript html optimization

在这个网站http://nashedom.ru上有JS脚本。大多数都很快。

modalka fancybox页面(对于登录用户,在用户机柜中,页面объявления - >добавлениеобъявления)非常慢。 Chrome中的加载时间为25-28秒。在Firefox中 - 2.5秒。

数据脱离了背景。

HTML:

{% load hosts %}
<div class="b-header">
    <div class="b-header__menu">
        <div class="container">
            <div class="row">
                <div class="col-xs-12">
                    <div class="b-menu">
                      <a>...</a>
                      <a>...</a>
                      <a>...</a>
                      <a>...</a>
                        <span class="b-menu__item btn_change-location">
                        <a href="#change-location" class="fancybox dashed">
                        {% if user.is_authenticated %}
                            View ads on site:
                            {% if user.districts.all.count > 1  %}
                                {% for district in user.districts.all %}
                                    {% if forloop.last %}
                                        <span>{{ district }}</span>
                                    {% else %}
                                        <span>{{ district }},</span>
                                    {% endif %}
                                {% endfor %}
                            {% else %}
                                {% for district in user.districts.all %}
                                    <span>{{ district }}</span>
                                {% endfor %}
                            {% endif %}
                            {% if user.regions.all.count > 1  %}
                                {% for region in user.regions.all %}
                                    {% if forloop.last %}
                                        <span>{{ region }}</span>
                                    {% else %}
                                        <span>{{ region }},</span>
                                    {% endif %}
                                {% endfor %}
                            {% else %}
                                {% for region in user.regions.all %}
                                    <span>{{ region }}</span>
                                {% endfor %}
                            {% endif %}
                            {% if user.cities.all.count > 1  %}
                                {% for city in user.cities.all %}
                                    {% if forloop.last %}
                                        <span>{{ city }}</span>
                                    {% else %}
                                        <span>{{ city }},</span>
                                    {% endif %}
                                {% endfor %}
                            {% else %}
                                {% for city in user.cities.all %}
                                    <span>{{ city }}</span>
                                {% endfor %}
                            {% endif %}
                        {% else %}
                                View ads on site:
                        {% endif %}

                        </a>
                        </span>
                    </div>
                </div>
            </div>
        </div>
    </div>

模板模式窗口

{% load hosts %}
{% load widget_tweaks static %}
<div id="change-location">
<form action="{% host_url "setlocation" host "www" %}" method="post">
    {% csrf_token %}

    <div id="chose-city-wrap">
        <div class="b-modal__title">Select your city</div>
        <p>
            <div class="b-modal__item">
                <span>{{ location_form.country.label }}</span>
                {{ location_form.country }}
            </div>
        </p>
        <p>
            <div class="b-modal__item">
                <span>{{ location_form.districts.label }}</span>
                {{ location_form.districts }}
            </div>
        </p>
        <p>
            <div class="b-modal__item">
                <span>{{ location_form.regions.label }}</span>
                {{ location_form.regions }}
            </div>
        </p>
        <p>
            <div class="b-modal__item">
                <span>{{ location_form.cities.label }}</span>
                {{ location_form.cities }}
            </div>
        </p>


        <br />

        <div class="b-modal__item b-modal__item_btn">
            <input class="b-btn b-btn_red" type="submit" value="Сохранить">
        </div>
    </div>
</form>
</div>

<!-- end snippet -->

城市下载表单在制动模式窗口的页面上!

<fieldset>
        <legend>The territory of distribution of the ads</legend>

        {{ form.country|add_class:"b-input__input js-select" }}
        {{ form.districts|add_class:"b-input__input js-select chosen-select" }}
        {{ form.regions|add_class:"b-input__input js-select chosen-select" }}
        {{ form.cities|add_class:"b-input__input js-select chosen-select" }}
        {# form.geo|add_class:"b-input__input" #}

    </fieldset>

1 个答案:

答案 0 :(得分:0)

正如你解释的那样,你有很多数据可以获得(国家,城市),如果你在php中这样做,你将锁定页面,直到你重新获得所有这些数据。

为了缩短加载时间,你只需要在js(ajax)中创建所有内容。

您加载了包含城市,国家/地区的页面,但没有数据。

加载页面(document.ready)后,您可以拨打ajax来填充您的城市,国家/地区等。