Съдържание
Когато решим, че ще поемем по пътя на работа Аякс в HTML5Трябва да сме наясно, че трябва да се справим с възможните грешки, които възникват, по -специално имаме два вида грешки, които се различават по своята гледна точка.Първият вид грешка се дава от гледна точка на обекта XMLHttpRequest и това е някаква ситуация, която пречи на заявката да бъде направена, като например, че името на хоста не се разрешава в DNS, отказ на връзка или невалиден URL адрес например.
Вторият тип грешка е даден от гледна точка на нашето приложение, но няма нищо общо с обекта XMLHttpRequest, тоест, направена е заявка, тя е приета, обработена и генерира отговор, но отговорът не е очакваното съдържание, като например ако посоченият от нас URL адрес не съществува.
Обработка на грешки при настройка
Нека да видим, че първият тип грешка, който трябва да обработим, е когато предаваме грешни данни на обекта XMLHttpRequest, нещо като лошо оформен URL, въпреки че звучи лудо, това е доста често срещана грешка, когато работим с Аякс.
Например, нека видим следното обаждане, което може да доведе до тази грешка:
httpRequest.open ("GET", "http: //");
За да възникне проблем от този тип, той обикновено възниква, защото потребителят е помолен да въведе някаква стойност или данни, с които ще генерираме URL адрес и тъй като знаем, че потребителят е първата слаба точка на програма и за да не ни се отрази това, ние трябва да разработим начини за валидиране и обработка на всякакъв вид съдържание, което ни изпраща.
За да се справим с това, използваме блок опитай да хванеш което ни позволява да изпълним кода и ако има проблем, улавяме грешката или изключението и можем да му дадем адекватна обработка, в този случай на пример това, което правим, е да покажем грешката, както можем да видим в следния код , които обобщаваме и само показваме частите, които представляват интерес в този конкретен момент:
опитайте {… httpRequest.open ("GET", "http: //");… httpRequest.send (); } catch (error) {displayErrorMsg ("try / catch", error.message); }
Вътре в блока улов Имаме възможност да запазим грешката, за това можем да поискаме отново да се въведат данните, да се изпрати на страница, където е посочена грешката и т.н. Важното е, че страницата не се проваля и процесът умира неочаквано за потребителя.
Обработка на грешки в заявката
Тази грешка се генерира, когато правим заявката, но нещо не е наред с нея, като например, че поисканият URL адрес не се разрешава в DNS; Нека видим следното обаждане:
httpRequest.open ("GET", "http: //a.nodomain/doc.html");
В този случай URL адресът не може да бъде разрешен от DNS, освен това, тъй като има различен произход от документа, който би могъл да ни засегне, за да управляваме този тип грешки, използваме функция, която ни помага да ги управляваме, като този, който виждаме в този пример:
function handleError (e) {displayErrorMsg ("Събитие за грешка", httpRequest.status + httpRequest.statusText); }
Единственият момент, който трябва да имаме предвид, е, че браузърите не обработват информацията за обекта httpRequest по същия начин, така че отговорът може да не е същият.
С това приключваме урока и вече имаме по -добра концепция за това как да се справим и управляваме грешките, които могат да възникнат при заявка Аякс и че те могат да направят страницата ни неуспешна.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка