производительность Django URL-тега - PullRequest
3 голосов
/ 09 апреля 2010

Я пытался интегрировать django-голосование в свой проект, следуя инструкции RedditStyleVoting .

В моем urls.py я сделал что-то вроде этого:

    url(r'^sections/(?P<object_id>\d+)/(?P<direction>up|down|clear)vote/?$',
    vote_on_object,
    dict(
        model=Section,
        template_object_name='section',
        template_name='script/section_confirm_vote.html',
        allow_xmlhttprequest=True
        ),
    name="section_vote",

тогда в моем шаблоне:

    {% vote_by_user user on section as vote %}
{% score_for_object section as score %}

<form class="sectionvote" id="sectionup{{ section.id }}"{% if vote and vote.is_upvote %} action="{% url section_vote object_id=section.id, direction="clear" %}"{% else %} action="{% url section_vote object_id=section.id, direction="up" %}"{% endif %} method="POST">
<input type="image" id="sectionuparrow{{ section.id }}" src="{{ MEDIA_URL }}/aup{% if vote and vote.is_upvote %}mod{% else %}grey{% endif %}.png"></form>

{{ score.score|default:0 }}

<form class="sectionvote" id="sectiondown{{ section.id }}"{% if vote and vote.is_downvote %} action="{% url section_vote object_id=section.id, direction="clear" %}"{% else %} action="{% url section_vote object_id=section.id, direction="down" %}"{% endif %} method="POST"> 
<input type="image" id="sectiondownarrow{{ section.id }}" src="{{ MEDIA_URL }}/adown{% if vote and vote.is_downvote %}mod{% else %}grey{% endif %}.png"></form>

Для загрузки страницы требуется более 1,3 с, но при жестком кодировании это выглядит так:

<form class="sectionvote" id="sectionup{{ section.id }}"{% if vote and vote.is_upvote %} action="sections/{{section.id}}/clearvote/"{% else %} action="sections/{{section.id}}/clearvote/"{% endif %} method="POST">

<form class="sectionvote" id="sectiondown{{ section.id }}"{% if vote and vote.is_downvote %} action="sections/{{section.id}}/clearvote/"{% else %} action="sections/{{section.id}}/downvote/"{% endif %} method="POST"> 

Я получил 50 мс. Просто избегайте решения проблем с тегами URL, которые я получил в 20 с лишним раз. Что-то я не так сделал? Если нет, то какова лучшая практика здесь, должны ли мы делать что-то «1019» или быстрый путь?

1 Ответ

5 голосов
/ 09 апреля 2010

Если вы используете версию для разработчиков, недавно произошла регрессия, которая значительно увеличила время, необходимое для обратного просмотра URL - см. тикет здесь . Его планируется исправить до финальной версии 1.2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...