Это скорее вопрос дизайна, чем технического вопроса, но он полностью меня озадачил.
Итак, у меня есть веб-страница (размещенная через google app engine), в которой перечислено несколько отдельных форм (каждая из которых представляет собойвопрос / головоломка).Одна головоломка имеет несколько текстовых полей для заполнения, а также кнопку отправки.После нажатия кнопки отправки на сервер (на python) выполняется запрос ajax, который проверяет правильность полученных ответов.В ответ страница обновляется, добавляя соответствующие галочки и крестики в соответствующих текстовых полях, а также наложение средней непрозрачности, охватывающее весь вопрос (для придания всему эффекту «серого»).
Когда страница обновляется, эти изменения, очевидно, исчезают.Однако запрос ajax сохраняет информацию об ответе в базу данных.Сами вопросы создаются путем рендеринга страницы с использованием Jinja2.
Таким образом, все соответствующие данные сохраняются, так что в следующий раз, когда пользователь вернется на страницу, вопросы, на которые он ответил в прошлом, все еще будут выделены серым цветом,его ответы и галочка / крестики все еще там.Тем не менее, я не могу понять, каким будет лучший способ сделать это.Должен ли я жестко закодировать модификации dom для готовых вопросов, используя операторы if в цикле jinja2 (например: для каждого создаваемого вопроса, если на него уже был дан ответ, то отобразите его по-другому).Или было бы лучше позволить странице нормально загружаться, а затем выполнять XHR при загрузке для каждого вопроса / формы на странице?
Действительно, что я хочу сделать, так как каждая форма отображается в Jinja2, выполнить xhr, чтобы увидеть, есть ли у него ответ в БД, и, если это так, действовать соответствующим образом.Но смешивание jinja2 с ajax кажется довольно грязным, наверняка есть лучший способ решить эту проблему?
Извините за длинный запутанный вопрос, надеюсь, он хотя бы понятен.