Отслеживание состояния с помощью Ajax ASP.NET / ICallbackEventHandler

Похоже, вы объединяете кучу разных применений RequireJS:

  1. Как вы можете использовать RequireJS, установленный через Node в браузере? Вы можете просто установить его с помощью npm install requirejs, а затем у вашего HTML-файла есть элемент script, который указывает на node_modules/requirejs/require.js. Точно так же, как вы показываете в своем фрагменте кода. Вот и все. Это говорит о том, что мне не нравится node_modules в том, что я развертываю, поэтому я обычно использую копию процесса сборки require.js в другом месте.
  2. Как вы можете загружать модули, установленные npm, с помощью RequireJS в Узел? Предположим, что без RequireJS вы загрузили модуль foo, выполнив require('foo'). Вы устанавливаете RequireJS и загружаете его как requirejs. Как вы загружаете foo с помощью RequireJS? Вы можете просто сделать requirejs('foo'). До тех пор, пока RequireJS не найдет его через свою собственную конфигурацию, он выдает в качестве последнего средства вызов собственного узла require и загрузит его таким образом? Вот иллюстрация. Установите RequireJS с npm install requirejs. Создайте этот файл:
    var requirejs = require("requirejs");
    
    var fs = requirejs("fs");
    console.log(fs);
    
    Затем запустите его. Вы попадете на модуль консоли fs в консоли.
  3. Как вы можете загружать модули npm с RequireJS в браузере? Это зависит от модулей. RequireJS не содержит кода, который волшебным образом сделает модуль, установленный npm, в браузере. В конечном итоге это зависит от того, как модули структурированы. Некоторые случаи: A. Некоторые модули, установленные npm, могут быть загружены с помощью RequireJS без изменений. Есть одна библиотека, которую я создал, которая распространяется через npm, и все же представляет собой набор модулей AMD. Тривиально загружать их с помощью RequireJS в браузере. B. Это может потребовать, чтобы они были завернуты в вызовы define. Недавно я загрузил merge-options в один из моих проектов с помощью gulp-wrap-amd . merge-options является модулем CommonJS. Он не поддерживает RequireJS из коробки, но если вы завернете его вызовом define, он будет работать. C. Это может потребовать что-то более сложное, прежде чем оно будет загружено в браузере. Например, если модуль полагается на модуль Node fs, вам придется предоставить замену для fs, которая выполняется в браузере. Вероятно, он будет содержать поддельную файловую систему для вашего кода.

12
задан Shog9 19 September 2008 в 22:38
поделиться

5 ответов

Если Вы уже переставляете ViewState вокруг так или иначе, Вы могли бы также использовать UpdatePanel. Его частичные обратные передачи обновят ViewState страницы автоматически.

2
ответ дан 2 December 2019 в 23:51
поделиться

Проверьте это сообщение в блоге: Тонкая настройка ICallbackEventHandler и Состояния отображения. Автор, кажется, обращается к самой ситуации, что Вы испытываете:

Таким образом, при использовании ICallbackEventHandler у Вас есть два препятствия для преодоления для обновления управления состоянием для обратных вызовов. Сначала проблема состояния отображения только для чтения. Другой на самом деле регистрирует изменения, которые пользователь внес в страницу прежде, чем инициировать обратный вызов.

Посмотрите сообщение в блоге для его предложений о том, как решить это. Также проверьте это сообщение форума, которое обсуждает ту же проблему также.

1
ответ дан 2 December 2019 в 23:51
поделиться

Я на самом деле нашел обе из тех ссылок Вами, если, но, как отмечено они просто описывают проблему, не решая его. Автор сообщения в блоге предлагает обходное решение при помощи другого поставщика ViewState, но к сожалению который не является возможностью в этом случае... Я действительно должен оставить подробные сведения в покое ViewState и просто зацепиться к тому, что делается out-of-the-box.

0
ответ дан 2 December 2019 в 23:51
поделиться

Я нашел довольно изящное решение с RadAjaxManager Telerik. Это работает вполне приятно, по существу Вы регистрируете каждое управление, которое могло бы вызвать обратную передачу, и затем регистрировать каждое управление, которое должно быть перерисовано после того, как та обратная передача выполняется асинхронно. RadAjaxManager обновит DOM после асинхронной обратной передачи и перепишет ViewState и все затронутые средства управления. После того, чтобы посмотреть в Отражателе это выглядит немного топорным под капотом, но он удовлетворяет моим целям.

0
ответ дан 2 December 2019 в 23:51
поделиться

Я не понимаю, почему Вы использовали бы пользовательский элемент управления для этого, когда встроенный ASP.NET AJAX UpdatePanel делает то же самое.

Это просто добавляет больше сложности, оказывает Вам меньше поддержки и делает более трудным для других работать над Вашим приложением.

0
ответ дан 2 December 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: