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…

多亏了这篇文章,我的开发效率远远领先于我的同事

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本文由独木桥先生发表于云社区专栏 介绍 如果您有从Linux服务器上的源代码安装软件的经验,您可能会遇到make实用程序。该工具主要用于自动编译和构建程序。它允许应用程序的作者轻松地布置构建该…

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…

oracle failover 区别,Oracle DG failover 实战

Oracle dataguardfailover实战操作步骤备库:SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE;SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP;添加临时文件,删除老的临时文…

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 --…

oracle数据泵导入很慢,impdp导入效率的问题

内网从一台服务器A导入到另一台服务器B,38G的数据半个多小时才导了一个表。原来B库上是有数据的,是不是因为TABLE_EXISTS_ACTIONREPLACE 导致速度慢了?parallel8也不知道会不会设高了。SQL> show parameter cpuNAME …

BZOJ2597 WC2007剪刀石头布(费用流)

考虑使非剪刀石头布情况尽量少。设第i个人赢了xi场,那么以i作为赢家的非剪刀石头布情况就为xi(xi-1)/2种。那么使Σxi(xi-1)/2尽量小即可。 考虑网络流。将比赛建成一排点,人建成一排点,每场未确定比赛向比赛双方连边,确定比赛向赢…

数据科学还是计算机科学_数据科学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函…

密码机

树状数组1 #include<bits/stdc.h>2 using namespace std;3 int x,y,c[200005];4 char str[20];5 int inline read(){6 int x0,f1;7 char chgetchar();8 while(ch<0||ch>9)9 chgetchar(); 10 while(ch>0&&ch<9){ 11 …

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…

sql management studio 附加mdf文件出错的解决办法

将mdf文件所在文件夹的权限改为everyone.&#xff0c;完全控制即可。

oracle raise_application_error,RAISE_ APPLICATION_ ERROR--之异常处理

平时用来测试的异常处理我们都是通过dbms_output.put_line来输出异常信息&#xff0c;但是在实际的应用中&#xff0c;需要把异常信息返回给调用的客户端。其实 RAISE_APPLICATION_ERROR 是将应用程序专有的错误从服务器端转达到客户端应用程序(其他机器上的SQLPLUS或者其他前台…

金融信息交换协议

随着网络的使用&#xff0c;目前所有大型的金融机构都已经实现了自动化和数字化。当中肯定少不了互联网的加入&#xff0c;那么在这当中&#xff0c;我们主要介绍一下FIX协议。它是由国际FIX协会组织提供的一个开放式协议&#xff0c;目的是推动国际贸易电子化的进程&#xff0…

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

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

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

相似邻里算法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…

一、面向对象

第一节&#xff1a;面向对象编程1.面向对象三大原则&#xff1a;封装&#xff1a;就是把客观事物封装成抽象的类&#xff0c;并且类可以把自己的数据和方法只让可信的类或者对象操作&#xff0c;对不可信的进行信息隐藏。继承&#xff1a;继承&#xff0c;指可以让某个类型的对…