JavaScript 非同步呼叫架構 (Part 6 – 執行個體 模式)

封裝Ajax 設計Async.Operation的最初目的就是解決Ajax調用需要傳遞callback參數的問題,為此我們先把Ajax請求封裝為Async.Operation。我在這裡使用的是jQuery,當然無論你用什麼基礎庫,在使用Async.Operation時都可以做這種簡單的封裝。 複製代碼 代碼如下:var Ajax = {}; Ajax.get = function(url, data) { var operation = new Async.Operation(); $.get(

JavaScript 使用Regex進行表單驗證的範例程式碼

JavaScript 表單驗證Regex大全利用Regex判斷是否是0-9的阿拉伯數字 複製代碼 代碼如下:function regIsDigit(fData) { var reg = new RegExp("^[0-9]$"); return (reg.test(fData)); } 利用這則運算式擷取字串的長度 複製代碼 代碼如下:function regDataLength(fData) { var valLength = fData.length; var reg = new

javascript 支援鏈式調用的非同步呼叫架構Async.Operation

複製代碼 代碼如下:Async = {}; Async.Operation = function(options) { options = options || {}; var callbackQueue = []; var chain = (options.chain && options.chain === true) ? true : false; var started = false; var innerChain = null; this.result =

一句話JavaScript表單驗證代碼

表單的用戶端javascript驗證有各種各樣的寫法,登入狀態form的onsubmit事件或submit按扭寫一個函數。對於小表單(只有一兩個表單域的表單)就不必再專門再用javascript寫一個驗證函式了,只需要在form的onsubmit事件裡加上: 複製代碼 代碼如下:onsubmit=”return domainname.value==”?(alert('請輸入搜尋內容'),false):true;”

JavaScript 非同步呼叫架構 (Part 5 – 鏈式實現)

調用入口 鏈式調用存在Async.go方法和Async.chain方法兩個入口,這兩個入口本質上是一致的,只是Async.chain方法在調用時先不提供初始參數,而Async.go方法在調用時提供了初始參數並啟動非同步呼叫鏈。 複製代碼 代碼如下:Async.chain = function() { var chain = new Async.Operation({ chain: true }); return chain; }; Async.go =

JavaScript 非同步呼叫架構 (Part 4 – 鏈式調用)

現實開發中,要按順序執行一系列的同步非同步作業又是很常見的。還是用百度Hi網頁版中的例子,我們先要非同步擷取連絡人清單,然後再非同步擷取每一個連絡人的具體資訊,而且後者是分頁擷取的,每次請求發送10個連絡人的名稱然後取回對應的具體資訊。這就是多個需要順序執行的非同步請求。 為此,我們需要設計一種新的操作方式來最佳化代碼可讀性,讓順序非同步作業代碼看起來和傳統的順序同步作業碼一樣優雅。 傳統做法 大多數程式員都能夠很好的理解順序執行的代碼,例如這樣子的: 複製代碼 代碼如下:var

JavaScript 非同步呼叫架構 (Part 2 – 用例設計)

傳遞迴調 我們首先要考慮的一個問題是,如何傳遞迴調入口。在最傳統的XHR調用當中,回呼函數會被作為最後一個參數傳遞給非同步函數: 複製代碼 代碼如下:function asyncOperation(argument, callback) 在參數相當多的時候,我們可以把參數放到一個JSON裡面,這樣參數就如同具名參數一樣,可以通過參數名選擇性的傳遞參數,不傳遞的參數相當於使用預設值。這是從Prototype開始就流行起來的做法: 複製代碼 代碼如下:function asyncOperation(

Javascript 驗證上傳圖片大小[用戶端]

需求分析: 在做上傳圖片的時候,如果不限制上傳圖片大小,後果非常的嚴重。那麼我們怎樣才可以解決一個棘手的問題呢?有兩種方式: 1)幕後處理: 也就是AJAX POST提交到後台,把圖片上傳到伺服器上,然後獲得該圖片大小做處理。 2)前台處理: 也就是利用Javascript擷取該圖片大小。 顯然第一種方式,很不好。因為需要把檔案先上傳到伺服器上,如果檔案很大的話,在加上網不是很快,需要等待好長時間,治標不治本。 功能解析: 在這裡我只介紹IE與FireFox兩個瀏覽器的不同做法。 IE6:

JavaScript 非同步呼叫架構 (Part 1 – 問題 情境)

問題 在Ajax應用中,調用XMLHttpRequest是很常見的情況。特別是以用戶端為中心的Ajax應用,各種需要從伺服器端擷取資料的操作都通過XHR非同步呼叫完成。然而在單線程的JavaScript編程中,XHR非同步呼叫的代碼風格實在是與一般的JavaScript代碼格格不入。 額外參數 考慮一個除法函數,如果它是純用戶端的同步函數,那麼簽名會是這樣的: function divide(operand1, operand2)

Javascript 類的繼承實現代碼

JavaScript中類的學習,從基本類繼承過來方法 也可以這樣實現: Java代碼 複製代碼 代碼如下:function newClass(){ this.firstName="frank"; this.toUc=String.toUpperCase; this.toString=function(){ return this.toUc(this.firstName); } } var nc=new newClass(); alert(nc);//在IE中沒反應。。 function

Javascript 學習筆記 錯誤處理

Java代碼 複製代碼 代碼如下:<html> <head> <title>javascript</title> <script type="text/javascript"> function test(inVal){ try{ inVal=inVal.toUpperCase(); }catch(error){ alert("An exception has occurred.Error

javascript 寫的一個簡單的timer

先看看效果吧。代碼很簡單,只是使用了javascript的setTimeout()函數。用到的html"複製代碼 代碼如下:<table> <td bgcolor="EE8F8F" height="45"> <img src="dg8.gif" src="dg8.gif" name="hr1"><img src="dg8.gif" name="hr2"><img src="dgc.gif" name="c"><img

javascript getElementsByName()的用法說明

我們來看: oEle= document.all.aaa ;//這裡有一個aaa的對象,但我們不知道它現在長度是多少,所以沒辦法對它操作.因此,我們要先做判斷長度的過程.如下: if(oEle.length){}else{}; 在兩種情況下,花括弧裡面的內容寫法也是不一樣的: 複製代碼 代碼如下:if(oEle.length){ for(var i = 0 ;i<oEle.length;i++){ oEle[i].value........ } } else{ oEle.value....

jquery imgareaselect 使用利用js與程式結合實現圖片剪下

複製代碼 代碼如下:/* 缺陷,當前在ff3下,用jquery的 width()與height()函數,在不設定圖片的寬度與高度的時候,不能取到 需要在圖片load函數裡面初始化才可以 */ sanshi_imgareaselect = function(pic_id,view_div_id){ this.pic_obj = jQuery("#"+pic_id); this.pic_width; this.pic_height; this.view_div_id

Javascript this指標

前言Javascript是一門基於對象的動態語言,也就是說,所有東西都是對象,一個很典型的例子就是函數也被視為普通的對象。Javascript 可以通過一定的設計模式來實現物件導向的編程,其中this “指標”就是實現物件導向的一個很重要的特性。但是this也是Javascript中一個非常容易理解錯,進而用錯的特性。特別是對於接觸靜態語言比較久了的同志來說更是如此。樣本說明我們先來看一個最簡單的樣本:<script type="text/javascript"> var

javascript 處理HTML元素必須避免使用的一種方法

我們可能往往會去排查問題的緣由,其實,在排查掉冗餘的迴圈和精簡了控制項數量後,我們發現效能還是不樂觀,於是繼續排查,一個偶然的修改,卻大大改善了效率,就是類似如下的修改: 修改前: 複製代碼 代碼如下:objDiv.innerHTML += ‘<img id=”picture” src=”back.gif”>'; 修改後: 複製代碼 代碼如下:var imga = document.createElement("img");

javascript 進度條 實現代碼

首先:建立兩個類,一個是用來與資料進行串連(資料層),另一個是用來關聯前一個類與頁面的(邏輯層) 建立一個JScsrip.js 檔案 代碼如下: 複製代碼 代碼如下:function setPgb(pgbID, pgbValue,pvalues) { if ( pgbValue <= pvalues ) { if (lblObj = document.getElementById(pgbID+'_label')) { lblObj.innerHTML

JavaScript 學習小結(適合新手參考)

常量:JavaScript常量又稱字面常量,是固化在程式碼中的資訊。變數:變數的主要作用是存取資料,提供一個存取資訊的容器。資料類型 整型:整型常量就是數字,可以是十進位、八進位、十六進位。 字串:字串就是以英文""或''括起來的一個或幾個字元。 布爾型:布爾型常量就是邏輯上的“真”和“假”。

JS input 數字驗證代碼

/* **@控制控制項只能輸入數字,含-(負號).(小數點) **@Inline HTML: <ELEMENT ... onkeypress="javascript:onlyNumber()" style="ime-mode:disabled"> For Input **@Event property: object.attachEvent("onkeypress",onlyNumber);object.style.imeMode = "disabled";

JavaScript 建立對象和構造類實現代碼

建立一個對象 Java代碼 複製代碼 代碼如下:<script type="text/javaScript"> var newObject=new Object(); //建立一個對象 newObject.firstName="frank"; //增加一個firstName屬性 newObject.sayName=function(){ alert(this.firstName); } //添加一個sayName方法 //調用sayName方法 //

總頁數: 3271 1 .... 82 83 84 85 86 .... 3271 Go to: 前往

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。