現(xiàn)代Web開發(fā)人員可能錯過一個強大的工具來提高可用性,而無需在計劃或構(gòu)建自己的網(wǎng)站時考慮Ajax。
在本文中,我們將討論如何解決成都江北
網(wǎng)站建設的五個最常見的挑戰(zhàn)。使用Ajax來增強網(wǎng)站上的內(nèi)容,盡管關于所有五個主題都有很多討論和研究,但是這個職位應該給初學者和中級Ajax開發(fā)人員一些可靠的技能,以便以更方便和易于理解的方式實現(xiàn)Ajax函數(shù)。
問題1:內(nèi)容不是向后兼容當出現(xiàn)此問題時,設計人員已經(jīng)將JavaScript和Ajax增強到他們的網(wǎng)站架構(gòu),而不指定禁用JavaScript的瀏覽器。
JavaScript和Ajax網(wǎng)站有哪些錯誤JavaScript應該被視為規(guī)劃過程的一部分,但是您應該確保站點是向后兼容的。
解決方案:將Ajax實現(xiàn)為已經(jīng)運行的網(wǎng)站的增強
盡管Ajax可能計劃網(wǎng)站的總體架構(gòu),以確保所有工作都可以通過常規(guī)的服務器端方法來完成。
假設您有一個員工信息頁面,每個員工有一個單獨的鏈接。使用服務器端技術,您可以基于查詢字符串的值顯示特定員工的內(nèi)容,以便:
上面所有的鏈接指向雇員頁面上的同一頁面,并根據(jù)變量查詢字符串。每個雇員的信息將以多種方式從服務器加載:通過服務器端;通過數(shù)據(jù)庫;甚至使用XML。
是否單擊了雇員鏈接,則頁面通過所請求的信息加載。
因此,在任何Ajax增強層之上的內(nèi)容都是完全可以接受的。然后,使用JavaScript,全頁刷新可以中斷和內(nèi)容,而不是通過AJAX加載。單擊鏈接可以通過ID或檢查錨href屬性的值來確定。
盡管內(nèi)容可以完全禁用javascript,但是大多數(shù)用戶會看到增強的AJAX驅(qū)動程序版本。
Ajax漸進增強的原理是眾所周知的,因為它是常用的JavaScript技術和固有的CSS,如下圖所示:
因此,在沒有JavaScript的情況下構(gòu)建網(wǎng)站,然后添加JavaScript作為增強,就像添加HTML內(nèi)容然后使用CSS增強一樣。
問題2:瀏覽器加載指示器不通過Ajax請求觸發(fā)幾乎所有瀏覽器都直觀地顯示要加載的用戶內(nèi)容。在當前瀏覽器中,指示標簽中顯示的加載內(nèi)容。
下面的圖片顯示了來自幾個流行瀏覽器的動畫指示器。
問題是Ajax請求不觸發(fā)這個負載度量,即內(nèi)置瀏覽器。
解決方案:在內(nèi)容、負載上插入類似的負載指數(shù)
這種常見的解決方案是將自定義進度指示符作為Ajax請求。許多網(wǎng)站提供免費加載的圖形。
為站點的Ajax功能實現(xiàn)自定義加載圖形或漸進指示器,只需在適當?shù)臅r候通過JavaScript顯示和隱藏它。
Ajax代碼將包括幾行代碼,這些代碼告訴您請求是否正在進行或已經(jīng)完成。
問題3:用戶不知道Ajax請求已經(jīng)完成這常常被忽略,因為開發(fā)人員可能認為缺少的負載度量可以通知用戶內(nèi)容已經(jīng)完全加載。但是在大多數(shù)情況下,它所顯示的內(nèi)容已經(jīng)更新或刷新得更好。
解決方案:用唯一請求完成的消息
這可以通過提交這樣的表單來確認。在已經(jīng)提交給Digger的鏈接頁上,請非常清楚地告知您已經(jīng)收到了您的提交:
Digg形式提交指示符
雖然這個指示符沒有指示Ajax請求的完成,但原理是相同的:在成功對話框出現(xiàn)后,加載提交表單的頁面,這與框不同。
在Ajax請求中可以使用類似的圖表或度量來告訴用戶內(nèi)容已經(jīng)更新。這是除了實現(xiàn)之外,而不是以前的問題,建議的進度指示符。
一種類似但微妙的方式來顯示一個區(qū)域的內(nèi)容已經(jīng)更新為黃色衰落技術。這種方法對于用戶來說很熟悉,而工程和Ajax則加載內(nèi)容。
問題4:Ajax請求無法訪問第三方網(wǎng)站上的服務這個對象對象位于所有Ajax請求的根部,它限制了頁面在同一域中的請求。但有時您希望通過Ajax請求訪問第三方數(shù)據(jù)。許多Web服務允許它們的數(shù)據(jù)通過API。
解決方案:使用服務器作為代理
這個問題的解決方法是在服務器和瀏覽器之間使用第三方服務代理。雖然方案的細節(jié)遠遠超出了本文的范圍,但我們將遵循的基本原則仍在起作用。
因為Ajax請求來自客戶端的瀏覽器,所以它必須在另一個位置引用文件,但是與請求源在同一域中。
與客戶端的瀏覽器不同,服務器并不受這種限制。因此,當調(diào)用服務器上的頁面時,它在后臺運行,因為它通常同時訪問任何域。
因為第三方服務請求在您的服務器上,所以用戶沒有安全風險。因此,一旦在服務器級別獲得信息,Ajax調(diào)用的下一步就是將響應返回給客戶端,客戶端將包括從第三方Web服務獲得的數(shù)據(jù)。
問題5:深層鏈接不可用這是一個棘手的問題,但它不能取決于您需要的站點或應用程序的類型。當出現(xiàn)問題時,內(nèi)容通過AJAX加載,因此國家的網(wǎng)站不受未指向的頁面URL更改的影響。
如果用戶通過與朋友共享的書簽或鏈接返回頁面,則不會自動顯示更新的內(nèi)容。網(wǎng)站將恢復到原來的狀態(tài)。Flash也有同樣的問題:不允許用戶鏈接到任何初始屏幕。
解決方案:使用錨定內(nèi)部頁面
確保使用AJAX驅(qū)動的頁面鏈接和特定國家的書簽來修改URL,而不刷新頁面或影響其垂直位置。
案例部分:
以上是一個功能塊代碼,但是一個理論例子來證明所涉及的主要步驟
代碼的前兩行從當前頁面位置(URL)獲取變量,然后將位置轉(zhuǎn)換為字符串,我們可以對其進行操作。
接下來,通過錨定(#),然后查看數(shù)組,從分割中創(chuàng)建多于一個的項。大于一個意味著URL的錨。
如果URL只是其中的一部分,則意味著沒有錨。后續(xù)的切換聲明包含基于錨值的內(nèi)容。在切換語句中有一個默認選項。如果不存在錨,它將在原來的狀態(tài)下加載同一頁。
此外,我們將編寫代碼來處理鏈接,通過內(nèi)部錨直接指向特定內(nèi)容。指向?qū)⒓虞d到內(nèi)容上的內(nèi)容的鏈接,字符串#內(nèi)容將附加到當前頁面的URL。
這將添加一個內(nèi)部錨來更改URL,保持頁面視圖不變,但保留一個標識符來表示頁面的所需狀態(tài)。
這個解釋只是一個理論。工作的概念,它工作得很好。但我沒有說這樣的網(wǎng)站或網(wǎng)站建設的所有可能性,缺點和其他微妙之處。
成都江北網(wǎng)站建設遵循更全面的討論,下面的鏈接,或者自己嘗試一下。另外,請注意,這可以用于在不使用Ajax的情況下更改要與JavaScript分開測試的內(nèi)容。
本文題目:成都江北網(wǎng)站建設:如何在web設計中解決ajax問題
當前地址:http://m.rwnh.cn/news14/226164.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司、云服務器、建站公司、網(wǎng)站維護、網(wǎng)站策劃、微信小程序
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)