Должен ли я использовать потоки при выполнении метода действия через AJAX? - PullRequest
0 голосов
/ 20 августа 2011

Я строю анкету.Когда пользователь нажимает на возможность ответа на вопрос с несколькими вариантами ответа (это переключатель), я вызываю метод действия, чтобы сохранить этот ответ.

Код:

<script language="javascript">

$(document).ready(function () {

    $('.MCQRadio').click(function () {

        var question_id = $(this).attr('question-id');
        var mcq_id = $(this).attr('mcq-id');

        $.ajax({
            url: '/SaveSurveyAnswers/SaveMCQAnswer',
            data: { "mcq_id": mcq_id, "question_id": question_id },
            success: function (data) {
            }
        });
    });
});

Код для сохранения ответа:

public EmptyResult SaveMCQAnswer(int mcq_id, int question_id)
    {
        MCQ_Answers mcqa = null;
        try
        {
            mcqa = db.MCQ_Answers.Single(x => x.question_ID == question_id);
        }
        catch (InvalidOperationException e)
        {

        }
        if (mcqa != null)
        {
            mcqa.mcq_id = mcq_id;
        }
        else
        {
            MCQ_Answers mcq_answer = new MCQ_Answers()
            {
                question_ID = question_id,
                respondent_id = 1
            };

            db.MCQ_Answers.AddObject(mcq_answer);
        }
        db.SaveChanges();
        return new EmptyResult();
    }

Если вопрос имеет 5 вариантов ответа, и янажимайте на них случайно и быстро, а затем возвращайтесь на предыдущую страницу, т.е. когда я вернусь, правильный ответ не будет сохранен.Должен ли я использовать многопоточность, чтобы убедиться, что правильный ответ сохранен?И как?

Спасибо

1 Ответ

0 голосов
/ 20 августа 2011

вместо того, чтобы сохранять свой ответ по почте все время, вы можете просто создать объект JSOn и сохранить ответы в json.затем вы можете в конце опубликовать все завершенные ответы за один раз.

посмотрите на это: http://msdn.microsoft.com/en-us/scriptjunkie/ff962533

в основном это позволит вам сохранять данные сеанса - json на удаленной машинетогда вам просто нужно добавить, удалить функцию, и все готово ...

Я использую это в огромной степени в приложении, которое требует обновления сервера с расположением объектов на холсте, однакос помощью sessvars я просто сохраняю все местоположения X и Y и выполняю последний толчок JSON, когда я закончу.

если вы меняете страницы, вы можете получить значения из объекта JSON без вызова сервера.

как примечание, вам также может быть лучше использовать вкладки или скрывать разделы формы, и, следовательно, уменьшить необходимость повторного заполнения, скажем, page1, page2 и т. Д., Поскольку они уже будут там, просто скрыты!*

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