您現在的位置是:電腦技術吧?>? 基礎知識 ??>??異步獲取無阻,echarts異步獲取數據??>??正文詳情

異步獲取無阻,echarts異步獲取數據

城修永2019-12-20 10:02:11 人圍觀
簡介js異步請求1) 要從指定的URL獲取相應的流,因為要獲取網絡資源,必須首先擁有URL。在這里,我首先封裝了通過打開URL連接獲得的InputStream,這樣interf真正的異步

1)從指定的URL獲取對應的流既然要獲取網絡資源,那么首先得有個URL,那么這里我首先封裝一個打開URL連接獲取到的InputStream 流,這樣一來無論是圖片資源還是文本文件資源都可以使用該接口方法來獲取流。

該功能主要應用URLConnection和HttpURLConnection來實現,具體實現方案如下:復制代碼private InputStream openHttpConnection(String urlString) throws IOException{ InputStream in = null; int response = -1; URL url = new URL(urlString); URLConnection conn = url.openConnection(); if(!(conn instanceof HttpURLConnection)){ throw new IOException(It is not an HTTP connection); } try { HttpURLConnection httpConn = (HttpURLConnection) conn; httpConn.setAllowUserInteraction(false); httpConn.setInstanceFollowRedirects(true); httpConn.setRequestMethod(GET); httpConn.connect(); response = httpConn.getResponseCode(); if (response == HttpURLConnection.HTTP_OK) { in = httpConn.getInputStream(); } } catch (Exception ex) { Log.v(Networking,ex.getLocalizedMessage()); throw new IOException(Error connecting); } return in; }復制代碼(2)封裝了上面的獲取流方法接口后,我們就可以利用上面封裝的方法來獲取并下載相應圖片和文本文件內容了獲取并下載圖片資源方法:復制代碼private Bitmap downloadImage(String url){ Bitmap bitmap = null; InputStream in = null; try { in = openHttpConnection(url); bitmap = BitmapFactory.decodeStream(in); in.close(); } catch (IOException e) { // TODO Auto-generated catch block Log.v(NetworkingActivity, e.getLocalizedMessage()); } return bitmap; }復制代碼獲取并下載文本內容方法:復制代碼private String downloadText(String url){ int BUFFER_SIZE = 2000; InputStream is = null; try { is = openHttpConnection(url); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return ; } InputStreamReader isr = new InputStreamReader(is); int charRead; String str=; char[] inputBuffer = new char[BUFFER_SIZE]; try { while((charRead=isr.read(inputBuffer))0){ String readString = String.copyValueOf(inputBuffer, 0, charRead); str = readString; inputBuffer = new char[BUFFER_SIZE]; } is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return ; } return str; }復制代碼(3)在獲取下載圖片資源和文本內容資源方法都完成后,現在就可以開始下載任務了,為了防止等待效應,一般采用異步任務來下載網絡資源。

對對應的下載資源任務封裝各自的異步下載任務即可。

下面就是實現異步下載任務的方案:異步下載圖片任務:復制代碼private class DownloadImageTask extends AsyncTaskString, Bitmap, Long{ long imagesCount = 0; ProgressBar progressBar; public DownloadImageTask(ProgressBar pBar){ this.progressBar = pBar; } @Override protected Long doInBackground(String... urls) { // TODO Auto-generated method stub for(int i = 0; i urls.length;i ){ Bitmap imageDownloaded = downloadImage(urls[i]); if(imageDownloaded!=null){ imagesCount ; publishProgress(imageDownloaded); try { Thread.sleep(300); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return imagesCount; } //display the image downloaded @Override protected void onProgressUpdate(Bitmap... bitmaps) { // TODO Auto-generated method stub ivImg.setImageBitmap(bitmaps[0]); progressBar.setProgress((int) imagesCount*10); } //when all the images have been downloaded @Override protected void onPostExecute(Long imageDownloaded) { // TODO Auto-generated method stub String str = 下載完成!一共下載了 imagesCount 張圖片; Toast.makeText(getBaseContext(), str, Toast.LENGTH_SHORT).show(); } }復制代碼異步下載文本文件內容任務:復制代碼private class DownloadTextTask extends AsyncTaskString, Void, String{ @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub Toast.makeText(getBaseContext(), result, Toast.LENGTH_LONG).show(); } @Override protected String doInBackground(String... urls) { // TODO Auto-generated method stub return downloadText(urls[0]); } }復制代碼這樣一來,異步下載網絡資源就完成了。

下面為了讀者方便測試,下面提供本文實例代碼中的相關網絡資源URL,以方便大家自己測試使用。

其余非核心代碼就不在貼出來,望讀者見諒。

復制代碼//圖片下載URLsprivate String[] mUrl = { http://images.cnitblog.com/i/322919/201405/181111308592436.png, http://images.cnitblog.com/i/322919/201405/181111385003770.png, http://images.cnitblog.com/i/322919/201405/181111493901865.png, http://images.cnitblog.com/i/322919/201405/181111550463327.png, http://images.cnitblog.com/i/322919/201405/181117587961455.png, http://images.cnitblog.com/i/322919/201405/181118041251414.png, http://images.cnitblog.com/i/322919/201405/181119313754936.png, http://images.cnitblog.com/i/322919/201405/181119357816682.png, http://images.cnitblog.com/i/322919/201405/181119458753432.png, http://images.cnitblog.com/i/322919/201405/181119499372608.png, http://images.cnitblog.com/i/322919/201405/181120173901329.png, http://images.cnitblog.com/i/322919/201405/181120244849561.png, http://images.cnitblog.com/i/322919/201405/181120357812013.png, http://images.cnitblog.com/i/322919/201405/181120398596959.png };progressBar = (ProgressBar) findViewById(R.id.progressBar);progressBar.setMax(mUrl.length*10);progressBar.setVisibility(View.VISIBLE);//異步下載圖片任務DownloadImageTask task = new DownloadImageTask(progressBar);task.execute(mUrl);//文本文件URLString strUrl = http://www.sogou.com/docs/about.htm;//異步下載文本文件內容任務new DownloadTextTask().execute(strUrl);

版權聲明:本文由 城修永 整理編輯。

原標題:js獲取異步返回的數據,異步實現

轉載注明出處:http://www.dn9ww09s.icu/basics/15577.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • 明日之后水紋特效,視頻局部水紋特效

    明日之后水紋特效,視頻局部水紋特效 相關圖片pr水波紋特效在哪/*腳本:zhfi特別感謝:restools,x-star*/!Addplugindir。!添加目錄。!包括mui2.nsh------------------ae波浪特效...

  • 項目管理器的功能,文件管理器哪個好用

    項目管理器的功能,文件管理器哪個好用 相關圖片安卓文件管理器特定的SQL企業管理器。(請注意:只有您擁有Microsoft office2000或XP許可證,這些軟件才是免費的。)許多使用SQL server的公司也使用服務器管理器怎么打開...

  • 刪除分區會刪除數據嗎,數據庫分區

    刪除分區會刪除數據嗎,數據庫分區 相關圖片分區損壞恢復數據創建分區表后,可以直接將數據插入分區表,而不管數據放在哪個物理數據表中。在上一篇文章的后面,我們將幾個數據插入到創建的分區表中:50行=15名稱=code類=c移...

  • 什么是數據庫,數據庫有什么用

    什么是數據庫,數據庫有什么用 相關圖片數據庫類型對于SQL新手來說,空值的概念常常會引起混淆。他們經常認為null與空字符串“”是同一回事。事實并非如此。例如,以下語句完全不同:MySQL insert in數據庫有哪些類型...

  • fplot用法示例,vbarray的用法

    fplot用法示例,vbarray的用法 相關圖片groupbyhiving用法本文主要介紹Oracle merge into的使用。您可以參考以下情況。如果表中已經存在一段數據,請更新它。如果不存在,插入新數據。如果不使用Oracle提供說的用法...

  • 在數組中查找指定元素,數組添加元素

    在數組中查找指定元素,數組添加元素 相關圖片怎么刪除數組中的某個元素本文的示例描述了JavaScript判斷數組是否包含指定元素的方法。與您分享以供參考。具體如下:該代碼通過prototype定義數組方法,以便調用contain如何刪除數組中...

  • js 數組對象排序,js對象數組進行快去排序

    js 數組對象排序,js對象數組進行快去排序 相關圖片json對象數組asp.net中的ArrayList對象是包含單個數據值的數據項的集合。如何創建ArrayList對象以及如何對ArrayList中數據項的內容進行排序?下面是數組對象去重...

  • 迭代算法的例子,迭代重建算法

    迭代算法的例子,迭代重建算法 相關圖片迭代計算什么意思在網頁上實現樹結構有點麻煩。在一個新的MIS系統的開發中,我們的項目組廣泛使用了樹形結構,如人員的選擇和單元的選擇。該MIS系統的數據庫是Oracle 9i,o斐波那契...

  • 如何防范漏洞,怎樣防范漏洞

    如何防范漏洞,怎樣防范漏洞 相關圖片xss漏洞防范1。數據庫下載漏洞攻擊原理:當使用access作為后臺數據庫時,如果有人通過各種方法知道或猜測服務器的access數據庫路徑和數據庫名,也可以下載access數漏洞是怎么產生的...

  • php將html轉化為word,phpword中文手冊

    php將html轉化為word,phpword中文手冊 相關圖片html5 word文件本文的例子描述了在PHP中將上傳的word文件轉換成HTML的方法。與您分享以供參考。具體實現方法如下:上傳頁面:?12345678910121314!DOCTphpword轉html閱讀...

熱評文章

  • php類的方法,php教程

    php類的方法,php教程 相關圖片php入門在PHP5之前,如果每個PHP框架都想實現類的自動加載,通常會根據某個約定自己實現一個遍歷目錄,并自動加載所有符合約定規則的類或函數。當然,在PHP 5之前,面php是什么...

  • 動態生成,動態表情生成器

    動態生成,動態表情生成器 相關圖片q動態頭像生成器在web應用中,經常需要動態生成圖片,如實時股市行情、各種統計圖表等。在這種情況下,圖片只能在服務器內存中動態生成并發送給用戶,然后在瀏覽器中顯示。實際...

  • aspjs格式化,asp格式化2百位

    aspjs格式化,asp格式化2百位 相關圖片asp文件轉換格式本文主要介紹了asp.net頁面中時間格式的例子。您可以參考asp.net頁面以Eval格式顯示時間,格式代碼如下:table trtd style=widthasp時間格式...

  • 復雜的事情簡單做例子,簡單生活的例子

    復雜的事情簡單做例子,簡單生活的例子 相關圖片堅持的例子一個比較簡單的asp.net文件上傳程序代碼,可以上傳rar、zip、TXT、JPG、GIF、DOC等格式的文件。您可以直接復制代碼并將其保存為ASPX文件進行偽代碼的簡單例子...

  • 自定義狀態欄怎么設置,自定義狀態欄不見了

    自定義狀態欄怎么設置,自定義狀態欄不見了 相關圖片華為自定義狀態欄公司的開發項目需要在狀態欄上增加程序下載的進度條。對于之前編寫的程序,由于自定義狀態欄的邊框和子視圖的邊框和變換都是根據iPad的方向設置的,所以有些...

  • 數據庫分區表有必要嗎,數據庫分區表類型

    數據庫分區表有必要嗎,數據庫分區表類型 相關圖片sql數據庫分區Oracle數據庫如何查看分區表信息?我想知道你是否總結了這些知識。接下來,我們創建兩個表test和GPRS?細胞體積?努力做實驗。腳本如下:create tadb2分區表創建...

  • html字符串轉化為,讓字符串轉成html

    html字符串轉化為,讓字符串轉成html 相關圖片js解析html字符串本文主要介紹了JavaScript檢測字符串中是否包含HTML標記的實現方法。本文直接給出了實現代碼。對于您的朋友,請參考下面的函數代碼:/**HTML標記是否js字符串轉html標簽...

  • 如何建立空數據庫,怎么創建空數據庫

    如何建立空數據庫,怎么創建空數據庫 相關圖片建立空數據庫的快捷鍵怎么新建空數據庫...

  • 如何建立空數據庫,怎么創建空數據庫

    如何建立空數據庫,怎么創建空數據庫 相關圖片建立空數據庫的快捷鍵現在我們知道了在構建數據庫之前應該注意的問題,讓我們從最基本的新空數據庫開始了解access數據庫的結構。在access 2000中,單擊access窗口左上角怎么新建空數據...

  • navicat怎么連接mysql,navicat連接不上mysql

    navicat怎么連接mysql,navicat連接不上mysql 相關圖片mysql navicat最新版本的Navicat for MySQL有自己的注冊代碼。它已經被綠化了。您可以通過將其解壓縮到任何目錄來運行它。Navicat premium是一個多連接navicat連接mysql...

關注微信

变脸官网查询