Silverlight:Downloader的使用(event篇)


(1)Downloader的使用

首先我们看什么是Downloader,就是一个为描述Silverlight plug-in下载功能的集合.Downloader能异步的通过HTTP GET Request下载内容.他是一个能帮助Silverlight下载内容的一个对象,这些下载内容包括(XMAL content,JavaScript content,ZIP packages,Media,images).当Silverlight plug-in安装时候,并不能完全提供所有应用程序的内容,但在一经请求这些内容就会响应应用程序的需要.更重要的是,你能在呈现内容后它仍然能被使用,而且不需要刷新业面.Downloader对象提供了初始数据传输的功能,通过事件和状态性质监控数据传输过程,并重新找到数据过程.

这个Downloader 对象的属性和方法模仿XMLHttpRequest(XHR)的一系列的APIs.XHR提供 JavaScript和其他Web浏览器脚本语言来传输和操作通过HTTP来于web Server端的XML数据.

通常你不详细指定Downloader 的URI;但你能指定URIs,并使用URI的配置是最初在安装Silverlight plug-in所指定主机器的HTML页面的地址.Downloader不能被用来跨域下载文件(内容不是来于最初始主机也面的地址).

下面给出一个事列显示怎样create, initialize, and execute 一个下载请求.为一个 被操作者挂上两个事件是(Completed, DownloadProgressChanged),但被操作者没有被指定,还有DownloadFailed也没有被定义.所以你要自己写一个.

// Event handler for initializing and executing a download request.
function onMouseLeftButtonUp(sender, eventArgs)
{
    
// Retrieve a reference to the plug-in.
    var slPlugin = sender.getHost();

    
// Create a Downloader object.
    var downloader = slPlugin.createObject("downloader");

    
// Add DownloadProgressChanged and Completed events.
    downloader.addEventListener("downloadProgressChanged", onDownloadProgressChanged);
    downloader.addEventListener(
"completed", onCompleted);

    
// Initialize the Downloader request.
    // NOTE: downloader APIs disallow file:\\ scheme
    // you must run this sample over localhost: or off a server or the following call will fail

    downloader.open(
"GET""promo.png");

    
// Execute the Downloader request.
    downloader.send();
}



(2):DownloadFailed

    当下载请求完成时没有下载内容时触发.

参数:
  参数名描述  
 类型
  downloaderObject
 一个Downloader对象.Object
  token 是一个函数的返回值,能随意的保留如变量.如你想要调用RemoveEventLister去删除这个被操作者,你将需要这个参数  integer
  eventhandlerFunction 在脚本中被定义的你的事件函数名,当使用AddEventListener pararmeter,就不需要提供函数名. Object
事件参数:
  sender
  识别调用事件的对象 
 Object
  eventArgs  
 参数始终为 null    Object
   
         
DownloadFailed 当下载请求完成时没有下载内容时触发.异步的调用Downloader的Send方法.主要由Status和StatusText的属性来反应HTTP的状态值来确定错误的下载请求.


你还能在脚本中添加一个事件名来添加操作者:
downloaderObject.AddEventListener("DownloadFailed""eventhandlerFunction")

这里就回返回一个token;删除操作时这个token就不是绝对需要,在这里是添加操作.所以需要.

DownloadFailed当下载请求完成时没有下载内容时触发,你使用一个Completed事件去取得Downloader对象所响应的文本.当你正在下载发生突发的错误,你将还是能添加一个DownloadFailed事件到你的应用程序和为DownloadFailed事件写入适当代码,最终解决你的内容不存在的问题.


(3)DownloadProgressChanged

在求情下载期间被出发.

参数:
  参数名描述  
 类型
  downloaderObject
 一个Downloader对象.Object
  token 是一个函数的返回值,能随意的保留如变量.如你想要调用RemoveEventLister去删除这个被操作者,你将需要这个参数  integer
  eventhandlerFunction 在脚本中被定义的你的事件函数名,当使用AddEventListener pararmeter,就不需要提供函数名. Object
事件参数:
  sender
  识别调用事件的对象 
 Object
  eventArgs  
 参数始终为 null    Object
   
         

DownloadProgressChanged 事件能被使用监控下载进程.DownloadProgressChanged是按照被下载内容总长度的0.05显示,最高可达到1.0.当下载状态改变时都将出发Completed 或DownloadFailed.

你还能在脚本中添加一个事件名来添加操作者:
downloaderObject.AddEventListener("DownloadProgressChanged""eventhandlerFunction")

语法这里还是就回返回一个token;删除操作时这个token就不是绝对需要,在这里是添加操作.所以需要.

在事件数据中这个进程要数不能被转载.取而代之的是使用Downloader对象的属性触发事件.That object is always the sender of the event.
------------------------------------------------------------
// Event handler for updating visual progress indicator
function onDownloadProgressChanged(sender, eventArgs)
{
    
// Calculate the downloaded percentage.
    var percentage = Math.floor(sender.downloadProgress * 100);

    
// Update the Rectangle and TextBlock objects of the visual progress indicator.
    progressText.text = percentage + "%";
    progressRectangle.width 
= percentage * 2;
}



(4)Completed

在请求下载内容完成时触发.


Completed在请求下载内容完成时触发.异步的调用Downloader的Send方法.主要由Status和StatusText的性质来反应HTTP的状态值来确定错误的下载请求.

你还能在脚本中添加一个事件名来添加操作者:
downloaderObject.AddEventListener("Completed""eventhandlerFunction")

语法这里还是就回返回一个token;删除操作时这个token就不是绝对需要,在这里是添加操作.所以需要.

Completed在请求下载内容完成时触发.并返回下载内容,你使用一个Completed事件去取得Downloader对象所响应的文本,在选择使用ResponseText性质或GetResponseText方法时.依赖于下载方式是否以包的形式,如是包的形式你就要指定part.
事例是定义一个取得下载内容的Completed事件函数,是单个文件下载(没有使用包)
// Event handler for the Completed event.
function onCompleted(sender, eventArgs)
{
    
// Retrieve downloaded XAML content.
    var xamlFragment = sender.ResponseText;

    
// Create the objects from the XAML content.
    var plugin = sender.getHost();
    
var button = plugin.content.createFromXaml(xamlFragment);

    
// Add downloaded XAML content to the root Canvas of the plug-in.
    var rootCanvas = sender.findName("rootCanvas");
    rootCanvas.children.add(button);
}



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388618.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

决策树信息熵计算_决策树熵|熵计算

决策树信息熵计算A decision tree is a very important supervised learning technique. It is basically a classification problem. It is a tree-shaped diagram that is used to represent the course of action. It contains the nodes and leaf nodes. it uses these nod…

Free SQLSever 2008的书

Introducing SQL Server 2008 http://csna01.libredigital.com/?urss1q2we6这是一本提供自由使用书!我把它翻译,或转送有什么关系!这样的书还是有几本吧,Introducing Linq,Introducting Silverlight,都是啊!嘿嘿。。。…

流式数据分析_流式大数据分析

流式数据分析The recent years have seen a considerable rise in connected devices such as IoT [1] devices, and streaming sensor data. At present there are billions of IoT devices connected to the internet. While you read this article, terabytes and petabytes…

Jenkins自动化CI CD流水线之8--流水线自动化发布Java项目

一、前提 插件:Maven Integration plugin 环境: maven、tomcat 用的博客系统代码: git clone https://github.com/b3log/solo.git 远端git服务器: [gitgit repos]$ mkdir -p solo [gitgit repos]$ cd solo/ [gitgit solo]$ git --…

数据科学还是计算机科学_数据科学101

数据科学还是计算机科学什么是数据科学? (What is data science?) Well, if you have just woken up from a 10-year coma and have no idea what is data science, don’t worry, there’s still time. Many years ago, statisticians had some pretty good ideas…

开机流程与主引导分区(MBR)

由于操作系统会提供所有的硬件并且提供内核功能,因此我们的计算机就能够认识硬盘内的文件系统,并且进一步读取硬盘内的软件文件与执行该软件来完成各项软件的执行目的 问题是你有没有发现,既然操作系统也是软件,那么我的计算机优势…

肤色检测算法 - 基于二次多项式混合模型的肤色检测。

由于CSDN博客和博客园的编辑方面有不一致的地方,导致文中部分图片错位,为不影响浏览效果,建议点击打开链接。 由于能力有限,算法层面的东西自己去创新的很少,很多都是从现有的论文中学习,然后实践的。 本文…

oracle解析儒略日,利用to_char获取当前日期准确的周数!

总的来说周数的算法有两种:算法一:iw算法,每周为星期一到星期日算一周,且每年的第一个星期一为第一周,就拿2014年来说,2014-01-01是星期三,但还是算为今年的第一周,可以简单的用sql函…

js有默认参数的函数加参数_函数参数:默认,关键字和任意

js有默认参数的函数加参数PYTHON开发人员的提示 (TIPS FOR PYTHON DEVELOPERS) Think that you are writing a function that accepts multiple parameters, and there is often a common value for some of these parameters. For instance, you would like to be able to cal…

2018大数据学习路线从入门到精通

最近很多人问小编现在学习大数据这么多,他们都是如何学习的呢。很多初学者在萌生向大数据方向发展的想法之后,不免产生一些疑问,应该怎样入门?应该学习哪些技术?学习路线又是什么?今天小编特意为大家整理了…

相似邻里算法_纽约市-邻里之战

相似邻里算法IBM Data Science Capstone ProjectIBM Data Science Capstone项目 分析和可视化与服装店投资者的要求有关的纽约市结构 (Analyzing and visualizing the structure of New York City in relation to the requirements of a Clothing Store Investor) 介绍 (Introd…

linux质控命令,Linux下microRNA质控-cutadapt安装

如果Linux系统已安装pip或conda,cutadapt的安装相对简便一些,示例如下:1.pip安装pip install --user --upgrade cutadapt添加环境变量echo export PATH$PATH:/your path/cutadapt-1.10/bin >> ~/.bashrc2.conda安装conda install -c b…

linux分辨率和用户有关吗,Linux系统在高分屏非正常分辨率显示

问题描述:win10重装为Ubuntu16.04,在1920x1080的显示屏上,linux系统分辨率只有800x600xrandr # 查看当前显示分辨率#输出:[Screen 0: minimum 800 x 600, current 800 x 600, maximum 800 x 600]可以看出显示屏最小为800x600&…

数据透视表和数据交叉表_数据透视表的数据提取

数据透视表和数据交叉表Consider the data of healthcare drugs as provided in the excel sheet. The concept of pivot tables in python allows you to extract the significance from a large detailed dataset. A pivot table helps in tracking only the required inform…

金融信息交换协议(FIX)v5.0

1. 什么是FIXFinancial Information eXchange(FIX)金融信息交换协议的制定是由多个致力于提升其相互间交易流程效率的金融机构和经纪商于1992年共同发起。这些企业把他们及他们的行业视为一个整体,认为能够从对交易指示,交易指令及交易执行的高效电子数…

linux行命令测网速,Linux命令行测试网速的方法

最近给服务器调整了互联网带宽的限速策略,调到100M让自己网站也爽一下。一般在windows上我喜欢用speedtest.net来测试,测速结果也被大家认可。在linux上speedtest.net提供了一个命令行工具speedtest-cli,用起来很方便,这里分享一下…

图像处理傅里叶变换图像变化_傅里叶变换和图像床单视图。

图像处理傅里叶变换图像变化What do Fourier Transforms do? What do the Fourier modes represent? Why are Fourier Transforms notoriously popular for data compression? These are the questions this article aims to address using an interesting analogy to repre…

C#DNS域名解析工具(DnsLookup)

C#DNS域名解析工具(DnsLookup) DNS域名解析工具:DnsLookup 输入域名后点击Resolve按钮即可。 主要实现代码如下: private void btnResolve_Click ( object sender, EventArgs e ) {lstIPs.Items.Clear ( ); //首先把结果里的ListBox清空 try {IPHostE…

滞后分析rstudio_使用RStudio进行A / B测试分析

滞后分析rstudioThe purpose of this article is to provide some guide on how to conduct analysis of a sample scenario A/B test results using R, evaluate the results and draw conclusions based on the analysis.本文的目的是提供一些指南,说明如何使用R对…

Linux程序实现弹框,jQuery实现弹出框 效果绝对美观

使用到JQeury写的几个比较好的Popup DialogBox,觉得不错。和大家分享下。使用它们结合.net可以实现很好的效果。1.jqpopup:是个可以拖拽,缩放并可以在它上面显示html页面上任何一个控件组合的控件。可以和后面的主页面通信。使用方法:先调用这几个js文件,可以自提供的下载地址下…