1) Да, обычно используется Ajax и Asp.net на одном сайте. Я делаю это все время (на самом деле, если вы отключите javascript на моих сайтах, они не будут работать так же хорошо, как AJAX). AJAX позволяет выполнять запросы к серверу без обновления страницы, вам все еще нужен серверный язык, чтобы выполнять работу с этим запросом. Вам также необходимо загрузить страницу в первый раз, так что элементы управления asp.net по-прежнему необходимы, и на самом деле, если вы используете asp.net asp.net, вы можете использовать панели обновления, в которые вы помещаете элементы управления, которые автоматически становятся включенными ajax.
2) Я не уверен, что вы имеете в виду, но Ajax - это в основном javascript, поэтому он работает на стороне клиента и отправляет запросы на сторону сервера.
Редактировать
Хорошо, я просмотрел большую часть материала в этих главах. На стороне сервера AJAX большая часть рендеринга выполняется на стороне сервера. Таким образом, панель обновления представляет собой серверный элемент управления ajax. Вы перетаскиваете его на свою веб-форму, добавляете к нему другие элементы управления на стороне сервера и кнопку. Если пользователь затем нажимает эту кнопку на панели обновлений, к серверу делается запрос ajax, и вы можете получить все необходимое и использовать C # для его изменения. Вам никогда не придется писать одну строку кода JavaScript, чтобы это произошло.
Конечно, это имеет цену, хотя, например, панель обновления не выполняет настоящий запрос ajax из-за жизненного цикла страницы. Если вы на самом деле просматриваете код через отладчик, вы заметите, что он пройдет жизненный цикл страницы, но в конце просто перезапустит эту панель обновлений, так что у вас будет немного больше времени, чем если бы вы сделали это самостоятельно.
Клиентская сторона Ajax - это, по сути, Microsoft, которая пытается упростить вам работу с javascript, сделав его более похожим на синтаксис C # и предоставив вам встроенные методы. Проблема состоит в том, что многие люди слишком часто бросают модное слово Ajax и называют вещи, которые не следует называть Ajax, когда они должны называться просто javascript.
Это похоже на случай с ajax на стороне клиента, так как большая часть того, что я видел в главе о ajax на стороне клиента, - это почти весь javascript. Как в «Рис. 33.8. Выбор пункта меню». все, что вам кажется, это ваш щелчок мышью на кнопке выбора, тогда она отображает название этой кнопки, которая на самом деле не является Ajax.
Ajax для меня - это когда вы на самом деле делаете запрос к серверу на публикацию или получение какой-либо информации без обновления страницы (т. Е. Полного возврата сообщения). Например, если вы получили форму данных, которую вы хотите отправить на сервер для сохранения в базе данных. Если вы нажмете кнопку «Сохранить», и данные формы будут отправлены на сервер без обновления страницы, это будет запрос Ajax.
Большинство вещей в наборе инструментов ajax - это больше javascript
http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/Calendar/Calendar.aspx
Например, элемент управления календаря, чтобы он выбирал разные даты, он не выполняет никаких запросов к серверу, поскольку все это javascript, так почему он будет ajax, если никогда не отправляет сообщения на сервер?
Если вы возьмете значение в текстовом поле, в которое элемент управления календаря поместит дату, и отправите ее на сервер, не обновляя страницу, которая будет Ajax-запросом.
Наконец, я бы не стал слишком беспокоиться о том, что веб-формы asp.net появятся где-нибудь в ближайшее время. Я полагаю, что парень, который написал эту статью о том, что asp.net собирается покрасить, - это парень, который создал Ajax или участвовал в разработке Ajax, так что он, вероятно, предвзят.
Кроме того, похоже, прошло 5 лет с тех пор, как он написал это, и asp.net сильнее, чем когда-либо. Ajax по-прежнему нуждается в сервере для подключения, вам все равно нужно визуализировать начальную загрузку страницы с помощью простых серверных элементов управления html или asp.net.
Редактировать 2
1) Да, я думаю, jquery лучше MS Ajax по нескольким причинам:
- Он использует меньше ресурсов, чем перетаскивание и
управление падением
- Это сильно упрощает JavaScript
облегчает использование (например,
выбор элементов управления html и т. д.). Так что если
Я использовал MS AJAX, я, вероятно, до сих пориспользовать JQuery для селекторов это
так что это своего рода излишним в использовании
оба, если у вас нет веских причин
тоже.
Единственная проблема заключается в том, что сделать ajax-запрос с использованием jquery при использовании веб-форм asp.net может быть немного сложнее (asp.net mvc был разработан с такими фреймворками, как jquery, поэтому это проще сделать).
2) Вам действительно нужно учить только jquery, а не javascript. Я прочитал книгу на javascript примерно за один день, затем запрыгнул в jquery, даже не выполняя упражнения в книге, и никогда раньше не делал javascript, и у меня не было проблем с выполнением jquery. Конечно, если у вас есть опыт работы с javascript, это плюс, так как иногда вы будете пытаться найти решение jquery, когда в javascript уже есть метод для того, что вы хотите сделать.
Редактировать 3
A)
Единственная проблема в том, что это может быть
немного хитрости, чтобы сделать запрос AJAX, используя
jquery при использовании asp.net
webforms (asp.net mvc был разработан с
рамки, как JQuery в виду, так что
это легче сделать).
Вы подразумеваете, что, возможно, jquery
может быть слишком много хлопот, когда
используется вместе с веб-формами, и поэтому я
следует подумать об использовании Asp.Net Ajax
вместо этого?
Нет, я не намекаю на то, что это слишком хлопотно для веб-форм, просто констатирую, что в некоторых ситуациях это будет немного сложнее, чем ms ajax и jquery, например, с asp.net mvc.
Веб-формы asp.net на самом деле не были созданы для фреймворка, такого как jquery, и им сложно с ним работать, потому что мешает жизненный цикл страницы. MS Ajax может иметь свои собственные проблемы, хотя (как и все обычно). Jquery задумывался о том, чтобы попытаться работать во всех браузерах, поскольку в javascript много раз вы писали что-то, что работало в IE, но не работало ни в каком другом браузере, и я не уверен, что версия на стороне клиента MS ajax думала об этом.
B) Я мало читал о ajax, что это
также необходимо позвонить в веб-службы или
некоторые другие технологии, которые обеспечивают
схожая функциональность с веб-сервисами.
Если это правда, какую технологию вы используете (
Веб-сервисы WCF или Asp.Net или…)?
Да, это правда. В этом и заключался весь смысл многих людей, включая меня, пытаясь доказать, что этот парень был неправ, что asp.net умирает из-за ajax, так как вам нужно что-то на заднем конце, чтобы сделать звонок тоже.
Однако вы можете выбрать все, что захотите. Вы можете создать отдельный веб-сервис (может быть веб-сервис asp.net), у вас могут быть как статические методы веб-сервиса при загрузке вашей страницы (я никогда не делал так), и способ, которым я использую это, заключается в создании общего AJAX обработчик
Однако вы не можете просто сделать обычный метод в вашей page_load и попытаться вызвать его, так как он должен пройти весь жизненный цикл страницы.
http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/
http://weblogs.asp.net/craigshoemaker/archive/2008/11/07/using-jquery-to-call-asp-net-ajax-page-methods-by-example.aspx
http://dotnetslackers.com/articles/ajax/using-jquery-with-asp-net.aspx
http://sites.google.com/site/spyderhoodcommunity/tech-stuff/usingjqueryinaspnetappswithhttphandlersashx
Я не читал эти учебные пособия, но эти учебные пособия должны показать вам 3 различных способа выполнения ajax-запроса к веб-службе asp.net, код asp.net за страницей и универсальный обработчик asp.net.
Выберите, какой из них вы считаете лучшим. Я не знаю, лучше ли один путь, чем другой, и, вероятно, есть больше способов сделать это.
C) Является ли Ajax подразделом jquery?
Таким образом, чтобы понять Ajax, мне понадобится
купить только книгу на jquery или
мне также нужно будет прочитать книгу с
Аякс в своем названии
Ajax - это просто часть jquery, и, вероятно, вам не придется долго учиться. Если вы купите книгу о JQuery, вероятно, будет около 1 главы. Единственный недостаток - все книги jquery, о которых я знаю, все в php.
Так что, если вы просто покупаете его, чтобы изучить часть ajax, вероятно, не стоит, так как они покажут целый пример того, как сделать это с php, который может немного отличаться, чем если бы вы делали это с asp.net (в основном просто настройка на стороне сервера для приема вызовов jquery - см. ссылки, которые я разместил выше).
Если вы хотите изучить селекторы jquery и прочее, тогда имеет значение, находится ли одна глава в php, поскольку все это на стороне клиента ожидается для части ajax (что касается стороны клиента и стороны сервера).
Нет ничего сложного в том, чтобы по-настоящему выполнять AJAX-вещи, просто зная, какой путь вам нужно выбрать, и больше о том, как принимать данные на стороне сервера и возвращать их на стороне сервера.
$.post("test.php", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
Вышесказанное - это, в основном, все, что вам нужно сделать на стороне jquery, чтобы отправить что-нибудь из ajax. Первый параметр - это путь, по которому должен идти этот запрос. В этом случае это какой-то php файл под названием test. Следующий параметр - это фактические данные, отправленные как результат json, и, наконец, последняя строка - это строка обратного вызова функции. Когда ajax post запрос сделан, эта строка вызывается и выполняет действия. Данные - это данные, которые вы вернули с сервера.
http://api.jquery.com/jQuery.post/
Так что я бы просто просмотрел уроки, которые я опубликовал, и поиграл с селекторами jquery. Как только вы это сделаете, вы сможете решить, хотите ли вы использовать jquery или нет. Последнее, что я хотел сказать о том, почему мне нравится jquery, это тот факт, что если вы изучаете MS Ajax, вы в основном зависаете с asp.net (с чем у меня нет проблем, так как я люблю .Net), но с jquery вы можете легко возьмите свой код или те навыки jquery и используйте его с php, ruby или чем-то еще, и все селекторы jquery на стороне клиента не изменятся при переключении на другой язык. Единственное, что будет отличаться, - это материал ajax, и даже он не будет отличаться на 100%, так как сторона клиента jquery ajax может быть такой же.