Munkavégzés különböző böngészők

Tekintettel a sokféle eszközök által támogatott különböző böngészőkben, néha nehéz létrehozni egy alkalmazás, amely működik az összes böngésző, amellyel a lehető legjobb felhasználói élményt. ASP.NET platform számos eszközt kínál, amelyek segítségével az írás helyes jelölés, dolgozik a különféle eszközöket.







osztály HtmlTextWriter

ASP.NET platform egy nagyon más elrendezést, amely úgy látja, az ügyfél, így az ügyfél kap egy HTML 3.2. egyéb - HTML 4.0. és a harmadik - az XHTML 1.1. Akkor nem is lehet tisztában a különbségek olyan jelentősek.

Mindez keresztül működik HtmlTextWriter osztály, amely több származtatott osztályokban. HtmlTextWriter maga úgy tervezték, figyelembe véve a jelölő kimeneti HTML 4.0. De az abból osztályt különböztetünk meg: igen, Html32TextWriter rögzíti jelölő HTML 3.2 az alacsonyabb szintű ügyfelek, egy XhtmlTextWriter - jelölőnyelv XHTML 1.1. Mivel az összes ilyen osztályok öröklik a HtmlTextWriter, akkor szabadon használhatja a megjelenítő kód ugyanazokkal az alapvető halmaza HtmlTextWriter módszerekkel. Végrehajtása azonban sok ilyen módszer más, oly módon, hogy attól függően, hogy az objektum már kapott, a kimenet eltérhet.

Tegyük fel például, hogy használja a következő kódot megjelenítés:

Ebben az esetben a várható ezt a jelölést:

De mutatja az eredményt amelyet úgy kapunk Html32TextWriter (feltételezve, hogy Html32TextWriter.ShouldPerformDivTableSubstitution egyenlő igaz):

Másrészt, ha használja a következő kódot, a feldolgozott kimenet lesz teljesen rugalmatlan, és soha nem fog változni attól függően, hogy a cél az eszköz képességeit:

Hasonlóképpen, ha az öröklési készül WebControl az automatikus támogatása stílustulajdonságok ez a támogatás végrehajtását függően különbözőképpen megjelenítő.

Ebből az következik, hogy szükség van, hogy elkerülje az alacsony szintű írás HTML-jelölést (a write () metódus), hanem, ha lehetséges, hogy egy magas szintű eljárásokkal (például RenderBeginTag () RenderEndTag (), stb). Ennek eredményeként az ellenőrzések sokkal rugalmasabbá válik. ASP.NET teremt és közvetít korrigálja a HtmlTextWriter, amelynek alapja a funkcionalitás a böngésző, az oldal kért, és képes lesz arra, hogy alkalmazkodjanak a HTML-jelölést.

A probléma most nem annyira kritikus, mint régen, mert a legtöbb népszerű böngészők támogatják az XHTML. Azonban ez általában jó megoldásnak, hogy garantálja a megbízható kód teljesítmény ASP.NET frissítésre kerül, hogy támogassa az új típusú megjelenítő, amelyek nem rendelkeznek még egy széles körű támogatást.

Meghatározó böngésző

Szóval, hogyan működik a ASP.NET környezetben határozza meg az osztály szövegírással amely alkalmas egy adott ügyfél? Minden attól függ, a felhasználói ügynök karakterlánc, amelyet a kliens által átadott, amikor kér. ASP.NET megpróbálja egyeztetni ezt a vonalat egy hatalmas katalógus ismert böngészők. Megtalálható a könyvtárban C: \ [könyvtár Windows] \ Microsoft.NET \ Framework \ [version] \ Config \ böngészők. Ott megtalálható számos .browser fájlokat. Mindegyik egy HTML-fájlt, amely megjeleníti a felhasználói ügynök karakterlánc a beépített teljesítmény és osztálya szövegbevitel.

.browser Minden fájlnak az alábbi alapvető szerkezet:

Ez a rendszer úgy tűnik, meglehetősen törékeny. Sajnos, ahogy van. Nincs garancia arra, hogy nem felel meg a böngésző egy string, amely nem egyezik az ismert mintákat. Azonban ez egy elkerülhetetlen kompromisszumot gyengén összekapcsolt világban az internet, és az ASP.NET alkotók elég jó munkát át a böngésző az információ, hogy jön az ASP.NET 4.0, megbízható volt, és teljesebb, mint az előző verziókban. Böngésző beállításait állíthatja, és még hozzá újradefinálásához különböző vonalak felhasználói ügynökök.

tulajdonságok böngészők

Határozza meg a böngésző jelenlegi konfigurációt ingatlan Böngésző HttpRequest objektum, amely visszaadja egy objektum referenciát HttpBrowserCapabilities. (Szerezd meg a felhasználói ügynök karakterlánc is lehet a UserAgent tulajdonság.)

Amikor egy ügyfél teszi a HTTP-kérés jön létre HttpBrowserCapabilities objektum, amely tele van információkkal böngésző képességeit alapján az érintett .browser fájlt. A megadott információk az HttpBrowserCapabilities osztály tartalmazza a böngésző típusát és verzióját, ha támogatja a végrehajtását kliens-oldali script, stb Meghatározó a képességeit a böngésző, akkor állítsuk be a kimeneti, hogy a különböző magatartás különböző böngészőkben. Így lehet engedni a teljes potenciálját a felső szintű ügyfelek megzavarása nélkül a munkát az alacsony szintű ügyfelek.







Az alábbi táblázat felsorolja a tulajdonságait HttpBrowserCapabilities osztály:

Tulajdonságok Class HttpBrowserCapabilities

Ez biztosítja a verzió számos vezető teljesítő .NET CLR környezetben telepített kliens számítógépen. Az is lehetséges, hogy használja GetClrVersions () metódus kivonására vonatkozó valamennyi információt telepített CLR-változatok médiában. Ez a beállítás csak akkor fontos a weboldal egy beépített .NET Windows Forms ellenőrzéseket. Kliensek nem kell a CLR futtatni a szokásos ASP.NET oldalak

True értékkel tér vissza, ha a kliens böngésző támogatja az ActiveX vezérlők

HttpBrowserCapabilities osztályban van egy feltűnő korlátozás - ez csak meghatározzuk a várt funkció a beépített böngésző. Nem tudja megállapítani a jelenlegi állapot ezt a funkciót.

Tény, hogy minden, ami igazán teszi ASP.NET - beolvassa a böngésző által küldött adatokat a böngésző a szerver idején a kérelmet, és összehasonlítja ezt a fonalat egy előre meghatározott információs .browser fájlokat. A felsorolt ​​fájlokat .browser böngésző funkciók, mint a script funkciót, stílus, keretek, stb Sajnos a kliens nem küld információt, hogyan kell beállítani a böngészőt.

Ez a helyzet hagy két választás. Akkor hivatkozhat a HttpBrowserCapabilities osztály, hogy információt kapjunk a rendelkezésre álló eszközök bizonyos böngésző és az alap programozási logika az információkat. Ebben az esetben, akkor készen kell állnia, hogy a véletlen hibák. Ha inkább egy fenntarthatóbb megközelítést, akkor meg kell írni a saját kódot úgy, hogy magától vizsgált támogatás a szükséges forrásokat.

Ezek a lépések meglehetősen nehézkes és zavaró, de ez az egyetlen módja annak, hogy teljes mértékben bízik a rendelkezésre álló bizonyos források böngészőt. Sajnos, a teremtés speciális vezérlők, általában nem tudja elvégezni ezeket az ellenőrzéseket.

Módosítása határozza meg a böngésző típusát

ASP.NET platform lehetővé teszi, hogy egyértelműen meghatározza, hogyan tehetik az oldalt ahelyett, hogy támaszkodni automatikus felismerése böngészőt. A trükk az, hogy a tulajdonságokat Page.ClientTarget. programozottan (lépésben Page.PreInit> vagy deklaratív (a direktíva oldal). Abban az esetben, a tulajdonságok beállításával ClientTarget automatikus meghatározását böngésző aktiválva a többi ASP.NET lekérdezésben böngésző beállításait adja.

Az egyetlen kikötés használatával járó ClientTarget tulajdonságokkal, az a képesség, hogy csak a megadott álnevek. Minden alias sztring jelenik az adott felhasználói ügynök (böngésző és beállítása a felhasználó számára szert bejelentett .browser megfelelő fájl).

Tegyük fel például, szeretné látni, hogy a oldal megjelenítésekor a régebbi böngészők, mint az Internet Explorer 6 kezdéshez létre kell hoznia egy alias a részben , amely megjeleníti a megfelelő felhasználói ügynök karakterlánc bármely kiválasztott nevet. Ebben az esetben az alias lesz IE6:

Most már lehet kapni az oldalt, hogy használja a felhasználónév és képzeld magad, mintha a kérés érkezett az Internet Explorer 6, amelyben az attribútum IE6 ClientTarget irányelv oldal. Íme:

adaptív képalkotó

Ideális esetben nem hozható létre olyan elrendezést, amely működik az összes főbb böngészők. De bizonyos esetekben meg kell írni egy specifikus egy adott böngésző megjelenítés logika. A legrosszabb esetben, úgy néz ki, mint ez:

A legjobb megoldás az, hogy egy vezérlő megjeleníti a normál megjelenítés és létrehozása az illesztő vezérlő, amely megvalósítja a speciális megjelenítő egy adott böngésző. A modell lehetővé teszi az illesztő elem alkot egyetlen vezérlő elem, amely lehet igazítani a különféle eszközöket. A legjobb az egészben, hogy a független fejlesztők, mert ez az elkülönítés ellenőrzés adapterek írhat adapter meglévő elemekből, így számukra a lehetőséget, hogy más platformokon.

Bármilyen kontroll révén adapterrel .browser fájlt. Például létrehozhat FirefoxSlideMenuAdapter adapter, amely megváltoztatja a megjelenítés SlideMenu ellenőrző kódot úgy, hogy jobban működik a Firefox. Ezután meg kell szerkeszteni a fájlt mozilla.browser kifejezetten jelzi, hogy az illesztő kell használni a Firefox.

vezérlő adapterrel működik, hogy tartalmazza a képalkotás folyamatát. ASP.NET platformon okoz az illesztő minden egyes szakaszában a Web-szabályozás életciklusa, amely lehetővé teszi az illesztő zavarja a képalkotás és a többi folyamat részleteket, mint a logikai állami reprezentáció specifikus eszközt.

Ahhoz, hogy hozzon létre egy adaptert, egy új osztály örököl System.Web.UI.Adapters.ControlAdapter (ha speciális vezérlőelem örökölt Control) vagy System.Web.UI.WebControls.Adapters.WebControlAdapter (ha különleges ellenőrzési örökölt WebControl). Ezután hajtsa végre a szükséges funkciókat, hogy felülírja a szükséges módszerek. Mindegyik módszer megfelel egy módszert osztály speciális vezérlő, és ha a felülírva módszer az adapter vezérlési eljárást az adapter helyett használjuk az ellenőrzési módszer.

Akárcsak a szerver oldali vezérlők, adapterek kell helyezni egy külön DLL-szerelvény. Ha adapterek viszonylag egyszerű, lehet őket helyezni ugyanabban a szerkezetben, amely tartalmazza az ellenőrzések. Azonban, ha az adaptereket összetettek, és úgy tervezték, hogy támogassák a használati esetek, célszerű elhelyezni őket egy külön szerelvény.

Például, a ControlAdapter felübírálható módszerekkel, mint például OnInit (), render () és RenderChildren (). A WebControlAdapter is felül lehet RenderBeginTag (), RenderEndTag () és RenderContents ().




Kapcsolódó cikkek