JQuery Custom AJAX сборки - PullRequest
       4

JQuery Custom AJAX сборки

2 голосов
/ 06 сентября 2011

Я пытаюсь убрать все, кроме функциональности ajax из jQuery.Извините за глупый вопрос, но выслушайте меня:

  • Я использую веб-работников для вызова ajax, поэтому у меня не может быть материала core.js.
  • Другая библиотека, которую я использую, называет jQuery, и я не смог заставить ее работать с библиотекой jQuery.Hive.Pollen.После многих часов устранения неполадок кажется, что библиотека ChemDoodle Web Components работает только с jQuery, и у меня недостаточно опыта, чтобы понять, почему.
  • Похоже, довольно просто использовать make-файл для сборки jQuery,но я не уверен, что включить.В make-файле я вынул все, кроме материалов, связанных с ajax:

.

BASE_FILES = ${SRC_DIR}/ajax.js\
    ${SRC_DIR}/ajax/jsonp.js\
    ${SRC_DIR}/ajax/script.js\
    ${SRC_DIR}/ajax/xhr.js\

Однако дальнейшая проверка исходных файлов / ajax показывает методы, вызывающие документ».Так что это означает, что это не будет работать вообще, независимо от того, сколько модулей я удаляю правильно?

Обновление: ошибка # 9889 в jQuery, похоже, указывает на то, что ядро ​​никогда не будет предоставлять функцию ajax, используемую веб-работникамипо крайней мере, в ближайшее время.

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

while (true){main();}

main(){
 get job from server via ajax
 process data//must use web worker
send results to server via ajax
}

Да, я мог бы реализовать свою программу для десериализации строки данных, переданной с главной страницы, и заставить страницу извлекать данные ajax, например,

//page-side javascript
var slave = new Worker()
slave.onMessage(event){
if status = "ready" {
check if data is available- if so, send it to server via ajax
fetch job data from server via ajax
slave.postMessage(job data)
}
}

//worker (slave)
self.onmessage(data) {
//process results
//send back to page
}

Полагаю, это может сработать, но это немного липко и, вероятно, медленнее, чем просто заставлять работника делать все.Согласно Рику Уолдрону, «если у вас была система, которая опрашивала , например, открывала работника, делала запросы xhr в цикле навсегда, при каждом ответе postMessage () возвращала результаты клиенту, тогда выможет принести пользу "

Я предполагаю, что я делаю xhr запросы в цикле навсегда, поэтому это приложение будет полезным.

Я нашел jQuery.Hive.pollen.js, но он не работает смоя другая библиотека, которая делает вызов ajax, который мне нужен.Хотя это отдельный вопрос (на самом деле мой главный вопрос), так что если кому-то интересно, вот ссылка на этот пост :

1 Ответ

0 голосов
/ 08 сентября 2011

Ах, я не разобрался с проблемой jQuery, но теперь я знаю, как сделать файл pollen.js более похожим на jQuery.

Удалить (или закомментировать) два заголовка запроса в пыльце:

_xhr.setRequestHeader("X-Requested-With", "Worker-XMLHttpRequest");
_xhr.setRequestHeader("X-Worker-Hive", "Pollen-JS" );

и в отличие от jQuery, функция ajax pollen.js возвращает объект JSON, содержащий данные JSON, возвращаемые сервером, а также строковую форму.

data = {"json":{jsonobjecthere},"text":"stringifiedversionofthedata"}

Если эти две модификации сделаны, то я считаю, что пыльца почти такая же, как у jQuery's ajax

...