Разделение кода в приложениях Ajax

не решение, а хак, который может помочь, если вы делаете что-то быстрое и грязное

  1. строчные названия стран
  2. удаление гласных из страны имена
  3. удаляют последовательные вхождения согласных

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

Я предлагаю это, поскольку ваши данные выглядят как названия стран, введенные пользователями.


другая идея:

шаг предварительной обработки:

  1. использовать корректор правописания, обученный по названиям стран, чтобы угадать название страны из неправильного правописания ( https : //norvig.com/spell-correct.html )
  2. преобразуйте каждую строку данных, используя это.

затем используйте groupby для группировки.

5
задан David Basarab 6 November 2008 в 14:16
поделиться

5 ответов

  • запишите свои шаблоны в странице HTML, вероятно, в скрытом элементе.
  • данные выборки через вызовы Ajax, я нахожу легче использовать JSON, таким образом, Вы не должны 'переформатировать' XML, это - только данные.
  • примените шаблон к данным, чтобы генерировать HTML и вставить в отображенную страницу.

проверьте некоторый jQuery, обрабатывающий плагины по шаблону: jsRepeater, jTemplates, noTemplate, Шаблон

4
ответ дан 14 December 2019 в 01:20
поделиться

Я не на 100% уверен, что получаю то, что Ваша проблема, но что можно сделать, особенно если мы говорим о единственном приложении Ajax стиля страницы, должна использовать Одноэлементные классы, приспособленные к определенным задачам.

var XMLFormatter = function(){
    /* PRIVATE AREA */

    /* PUBLIC API */
    return {
        formatXML : function(xml){
            /* DO SOMETHING RETURN SOMETHING */
        }
    }
}();

То, с чем Вас оставляют, является статическим классом XMLFormatter, который можно назвать где угодно на странице как так...

function useClass(){
    $('#test').update(XMLFormatter.formatXML(someXML))
}

Эта функция может использоваться в качестве обратного вызова по запросам Ajax. Я использую этот метод для логики страницы путем создания класса Page, TAHT возвращает объект с init методом, который называют, когда страница загружается. init метод затем присоединяет различные события и материал к моей странице, и это - элементы. Это - подход, о говорят в Pro Шаблонах разработки JavaScript, определенно стоящих чтения, если у Вас есть время и деньги.

Также стоит принять во внимание, что JavaScript очень отличается по сравнению с другими языками, и обычно подходы наиболее успешной практики народов являются обычно просто, адаптированными от Java. В то время как это в порядке, это не использует JavaScript для, он - полный потенциал. Помните, что JavaScript довольно управляем событиями из-за, он - близость со взаимодействием UI, и Вы найдете некоторый код события, смешивающийся с другим кодом. Веб-сайт Crockfords (http://javascript.crockford.com/) имеет некоторые статьи лучшей практики плюс много других полезных подсказок.

2
ответ дан 14 December 2019 в 01:20
поделиться

Если я правильно понимаю вопрос, у Вас есть много HTML/javascript в том же блоке кода, и Вы хотите разделить их.

Я использовал бы несколько приемов, чтобы иметь чистое разделение:

  • Один файл JS, содержащий сценарии/функции на группу действий.
  • Один файл JS, содержащий все общие функции (синтаксический анализатор XML, утилиты...)
  • Один файл JS, который (ленивый-) загружает определенный сценарий (объект № 1 здесь) и присоединяет любые события к текущим элементам на загрузке документа.

Основная проблема состояла бы в том, чтобы присоединить непрерывные функции/события к сгенерированному коду. IIRC, JQuery может обработать это, но не уверенный.

Надежда это помогает.

0
ответ дан 14 December 2019 в 01:20
поделиться

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

1: Запишите "классы" для функциональности и передайте в элементах для изменения в constuctor, является ли это идентификатором для элемента или самого элемента до Вас.

2: Запишите "события" для разделов, которые могут варьироваться в зависимости от страницы или управления. Событиями я имею в виду просто методы заполнителя, которые можно перезаписать с фактическими функциями. Таким образом для примеров...

var FilterControl = function() {

    //the "event"
    var self = this;
    this.onLoadComplete = function() { };

    //This is the command that calls the event
    this.load = function() {
        //do some work
        ...

        //Call the event
        self.onLoadComplete();
    };
};

//somewhere else in the code
var filter = new FilterControl();
filter.onLoadComplete = function() {
    //unique calls just for this control
};

3: Получите IDE, который является большим количеством дружественного JavaScript. Я люблю свою Visual Studio, но Apanta делает выдающийся IDE, который имеет действительно мощный JavaScript IDE (он позволяет Вам перетаскивать.JS файлы в диалоговое окно Ссылок на файл, таким образом, Вы получаете intellisense для всех тех документов JavaScript, решая одну из главных причин, почему трудно разделить JavaScript!

3
ответ дан 14 December 2019 в 01:20
поделиться

Мне не нравится форматировать на клиенте, таким образом, я всегда пытаюсь возвратить HTML из обратных вызовов Ajax, если мне действительно не нужны данные для списка выбора, например.

Причина этого, у меня есть богатый набор инструментов на сервере (ASP) для создания HTML и ничего на клиенте. Я использую пользовательскую 'динамическую страницу' на сервере, который содержит 'динамическое управление', которое содержит шаблон для данных, которые я хочу отформатировать. Только контент того управления испускается от страницы.

Веб-сервис, который просто делают вызовы Ajax: возврат Выполняется (some-dynamic-page). Аргументы веб-сервису передаются динамической странице или в мешке HttpContext или на строке запроса.

Я нахожу легче создать новый динамический шаблон страницы на сервере с помощью средств управления перетаскиванием, чем использование клиентского шаблона или xml преобразователя. Я не использовал никого или инструменты шаблонной обработки Jxxxx, хотя - возможно, они упрощают боль.

Используя тот метод, можно использовать то же разделение (MVP/MVC или просто кодировать - позади), что Вы обычно были бы.

0
ответ дан 14 December 2019 в 01:20
поделиться
Другие вопросы по тегам:

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