Вызов веб-сервисов с использованием Ajax или Silverlight? Что работает лучше всего? - PullRequest
2 голосов
/ 03 октября 2008

Я создаю приложение ASP.NET AJAX, которое использует JavaScript для вызова веб-служб для получения своих данных, а также использует изолированное хранилище Silverlights для кэширования данных на клиентском компьютере. В конечном итоге после загрузки данных они передаются в JavaScript, который отображается на странице с помощью HTML DOM.

То, что я пытаюсь выяснить, - имеет ли смысл для меня делать эти вызовы веб-службы в Silverlight, а затем передавать данные в JavaScript после их загрузки? Кроме того, Silverlight будет сохранять данные на диск с помощью изолированного хранилища, независимо от того, вызываю ли я веб-службы с помощью JavaScript или Silverlight. Если я вызываю веб-службы с помощью JavaScript, данные передаются в Silverlight для кэширования.

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

Кто-нибудь делал что-нибудь подобное? Если да, что вы думаете о производительности с использованием описанного метода JavaScript или Silverlight?

Ответы [ 4 ]

3 голосов
/ 04 октября 2008

Поскольку Silverlight может обрабатывать службы на основе JSON и XML, формат ответа совершенно не имеет значения. Однако вы должны учитывать следующее:

1) Silverlight примерно в 1000 раз быстрее, чем JavaScript 2) Если ваша веб-служба изначально основана на SOAP, Visual Studio может сгенерировать для вас прокси-сервер, поэтому вам не нужно анализировать SOAP-сообщение. 3) В Silverlight есть LINQ to XML и LINQ to JSON, что позволяет легко анализировать POX и JSON.

В идеальном мире я бы использовал Silverlight для «движка» и вернулся к JavaScript в случае, если Silverlight недоступен.

Привет, Laurent

1 голос
/ 03 октября 2008

Еще одна вещь, которую следует учитывать - получение ваших данных в формате JSON будет быстрее, чем XML и веб-сервисы. JSON довольно быстро становится объектом JavaScript, и его не нужно анализировать, как это делает XML. Лично я бы пошел с JavaScript.

статья: Ускорение AJAX с JSON

0 голосов
/ 04 октября 2008

Передача данных в формате JSON частично происходит быстрее, потому что, в отличие от сообщения XML SOAP, для него не требуется заголовок SOAP или любая другая дополнительная информация - это просто чистые данные. Таким образом, уменьшая общий размер сообщения.

0 голосов
/ 04 октября 2008

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

...