基于HTML5的移动Web应用——文件操作

uniapp iosApp H5+本地文件操作(写入修改删除等) 以csv文件为例,写入读取保存修改删除文件内容,传输文件等 阅读详情

过去Web程序不能替代桌面程序的一个重要原因就在于浏览器对于文件操作API的缺失。照片处理中的裁剪、滤镜,二维码的读取与识别,文档的查看和编辑等,这些操作无一不依赖文件的操作,HTML5赋予了浏览器几乎和本地程序同等强大的文件操作能力。

File API是HTML5在DOM标准中添加的功能,它允许Web内容在用户授权的情况下选择本地文件并读取内容一通过 File,FileList 和FileReader等对象共同作用来实现。

选择文件

1、通过表单选择文件

由于Web环境的特殊性,为了考虑文件安全问题,浏览器不允许JavaScript直接访问文件系统,但可以通过file类型的input元素或者拖放的方式选择文件操作。
<input type="file" id="thisFile"/>

File表单可以让用户选取一个或者多个文件(multiple 属性),通过FileAPI,可在用户选择文件后访问到代表了所选文件列表的FileList对象,FileList 对象是一个类数组的对象,其中包含着一个或多个File对象。如果没有multiple属性或者用户只选了一个文件,那么只需要访问FileList对象的第一个元素:
var filelist=document.getElementById('thisFile') .files;
var selectedFile-filelist[0]; 

使用input元素时,用户在选择文件后会触发其change事件:
var inputElement=document.getElementById('thisFile')
inputElement. addEventListener ("change",handleFiles, false)
function handleFiles(){
     var fileList=this.files 
}

和其他类数组对象一样,FileList 也有length属性,可以轻松遍历其File对象:
for (var i=0, numFiles=files.length ; i< numFiles; i++) {
    var file=files[i]
    ……
}

File对象有3个很有用的属性,包括了关于该文件的许多有用信息。
(1) name: 文件名,不包含路径信息。
(2) size: 文件大小,以B为单位。
(3) type:文件的MIME type。
需要注意的是,这3个属性都是只读的。

2、通过拖曳来选择文件

使用拖曳的方式来选择文件的效果,需要通过访问dataTransfer的files属性来实现。
下面通过一个案例来演示具体效果,如示例所示。
【示例】 使用拖曳的方式选择文件
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<style>
    .dropzone{
        width: 200px;
        height: 100px;
        border: 2px  dashed #ddd;
        text-align: center;
        padding-top: 100px;
        color: #999;
    }
</style>
<body>
<div id="dropzone" class="dropzone">
    拖曳文件到此处
</div>
<div id="output" class="output">


</div>
<script>
    function getFileInfo(file) {
        var aMultiples = ["KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], sizeinfo;
        var info = '文件名:' + file.name ;
        // 计算文件大小的近似值
        for (var nMultiple = 0, nApprox = file.size / 1024; nApprox > 1; nApprox /= 1024, nMultiple++) {
            sizeinfo = nApprox.toFixed(3) + " " + aMultiples[nMultiple] + " (" + file.size + " bytes)";
        }
        info += ";大小:" + sizeinfo
        info += ";类型:" + file.type


        return info + '<br>'
    }


    var dropzone = document.getElementById('dropzone');
    dropzone.addEventListener('drop', function (e) {
        var html = '您一共选择了 ' + e.dataTransfer.files.length + '个文件,文件信息如下:<br>';
        [].forEach.call(e.dataTransfer.files, function (file) {
            html += getFileInfo(file);
        });
        document.getElementById('output').innerHTML = html
        e.preventDefault();
        e.stopPropagation();
    }, false);
    dropzone.addEventListener('dragover', function (e) {
        if (e.preventDefault) {
            // 必须要阻止dragover的默认行为(即不可drop),这样才能进行drop操作。
            // 否则不会触发drop事件
            e.preventDefault();
        }
        return false
    }, false)
</script>
</body>
</html>

H5 拖拽上传本地文件(原生实现) H5 拖拽上传本地文件(原生实现),同时支持点击上传 阅读详情

相关推荐

基于 HTML5 的校园网站移动平台 web 页面设计

摘要 :随着无线网络技术和智能移动设备的发展,人们对 web 应用的需求也在不断增加。HTML5 的出现,给移动互联网带来了 重要的影响。作为重要的 web 开发标准,HTML5 使 web 应用开发更加容易。本文使用 HTML5 简单论述了一个校园网站 web 也 的开发过程。 关键词 :HTML5 ;移动互联网 ;web 应用 ;校园网站 Design of Campus Webs

fxmgx的博客 7818

HTML5+plus 移动文件夹或文件(必会!!)

【代码】HTML5+plus 移动文件夹或文件(必会!!)

qq_61033782的博客 1242

基于HTML5的Web SCADA工控移动应用

在电力、油田燃气、供水管网等工业自动化领域Web SCADA的概念已经提出了多年,早先年的Web SCADA前端技术大部分还是基于Flex、Silverlight甚至Applet这样的重客户端方案,在HTML5流行前VML和SVG算是真正纯种Web方案也是有不少应用,近些年随着HTML5的流行,加上移动终端对HTML5支持的普及,越来越多新项目开始采用真正纯HTML5的方案,更具体的说大数据量应用

yixiaof的专栏 1336

HTML5文件操作+上传+文件拖拽(案例)

readAsDataURL(file)获取一个对象路径,读取对象,readAsText(文件,"utf-8")以某种字符编码读取。onloadend读取文件完成时触发(无论成功与否)onloadstart读取文件开始时触发。onprogress读取文件过程中触发。onload读取文件成功完成时触发。fileList读取多个文件对象。fileReader读取文件信息。onabort读取文件中断时触发。reslut获取读取对象的信息。file读取单个文件对象。abort()中断读取。...

TongJ_的博客 2124

《HTML5移动Web开发指南》读后笔记

《HTML5移动Web开发指南》读后笔记

Gyoung杨广 978

JavaScript HTML5移动端简易文件上传实现 - JavaScript技巧

在移动端开发中,实现文件上传功能是一个常见的需求。通过结合JavaScript的技巧,我们可以轻松地在移动端实现文件上传功能。通过使用JavaScript和HTML5的File API,我们可以在移动端实现简易的文件上传功能。以上提供的代码示例展示了如何处理文件选择、上传进度追踪和上传结果的处理。接下来,我们将使用JavaScript来处理文件上传的逻辑。首先,我们需要创建一个简单的HTML结构来容纳文件上传功能。在上述代码中,我们首先获取文件输入框的引用,并从中获取用户选择的文件。)来显示文件上传进度。

ByteZenith的博客 469

移动Web开发实战内容要点!!!

网页主要由三部分组成:结构(Structure)、表现(Presention)、行为(Behaveior)。 HTML是hyper text markup language(超文本标记语言)的缩写。

Z_CH8648的博客 1578

HTML5移动Web开发完全指南

本文还有配套的精品资源,点击获取 简介:《HTML5移动Web开发指南》一书由唐俊开编写,旨在指导开发者深入掌握HTML5在移动设备上的应用。本书详尽阐述了HTML5的核心特性和API,如离线存储、语义化标签、表单控件增强、媒体元素、Canvas和SVG图形支持、Geolocation API、Web Workers和Web Storage,以及WebSocket和WebR...

weixin_42594419的博客 1428

读薄《HTML5 移动Web 开发指南》

第1章 移动互联网时代的Web技术 目录 第1章 移动互联网时代的Web技术 1.1 移动互联网的发展 1.2 智能手机发展迅速 1.3 智能手机的Web浏览器 1.4 移动Web应用的发展 1.5 基于HTML5的移动Web应用 1.1 移动互联网的发展 1.2 智能手机发展迅速 1.3 智能手机的Web浏览器 基于Webkit的浏览器 Webkit 实际上是一种浏览器引擎,同时也是一个开源的项目。在桌面浏览器中,Chrome谷歌浏览器、Apple的Safari浏览器都内置了.

weixin_41184962的博客 2141

DETRs with Collaborative Hybrid Assignments Training论文阅读与代码

在这篇论文中,作者观察到在DETR中将过少的 Query 分配为正样本,采用一对一的集合匹配,会导致对编码器输出的监督稀疏,严重损害编码器的区分特征学习,反之亦然,也会影响解码器中的注意力学习。为了缓解这个问题,作者提出了一种新颖的协同混合分配训练方案,名为Co-DETR,以从多样的标签分配方式中学习更高效、更有效的基于DETR的检测器。这种新的训练方案可以通过训练多个并行辅助 Head ,以一对多的标签分配方式(如ATSS和Faster RCNN)进行监督,轻松增强端到端检测器中编码器的学习能力。

qingjing0413的博客 1153

CTP接口入门

该文章主要讲什么 这篇文章的面向对象是有一些C++基础,并且想用C++来做程式化交易的同学。 这篇文章可以算是我的程式化学习笔记中的一篇。其中介绍了CTP的简单的使用方式,并且附上了一些代码以及我在试用的时候遇到的一些小坑。 什么是CTP CTP是上海期货推出的一套可供程序调用的交易接口。就好比官方给程序化交易提供了的一个专门的业务窗口。 接口相关文件下载 CTP接口可以在上期...

weizehua的专栏 4万+

HTML5移动web开发指南笔记

手机内置浏览器:  Android:Andriod BrowserIOS:Mobile SafariBlackBerry:WebkitSymbian S60: Web Browser for S60 其浏览器的核心都是基于Webkit Webkit简介:     一种浏览器引擎,同时也是一个开源的项目 Web浏览器带来的意义:     可以通过浏览器直接访问任何

herion_liu的博客 3406

记录:N10激光雷达串口编程,将数据存进 SQLite,并进行 ROS2 - cartographer 单雷达建图

N10 系列采用 TOF(time of flight)测距原理,通过测量调制激光的发射、返回时间差来测量物体与传感器的相对距离。激光发射器发出调制脉冲激光,内部定时器开始 从t1时刻计算时间,当激光照射到目标物体后,部分能量返回,当雷达接收到返回的激光信号时,在t2时刻停止内部定时器计时,光速C,激光雷达到达物体的距离D为:经过N10系列激光雷达内嵌的信号处理单元的实时解算得到探测物体的距离值,结合高精度自适应角度测量模块输出的角度信息,可以得到量程内周围 360 度环境 的二维平面信息。

m0_74013893的博客 1096

HTML5 - 搭建移动Web应用

HTML5 - 搭建移动Web应用 by gzterrytan is licensed under a Creative Commons 署名 2.5 中国大陆 License. 关于HTML5   HTML5具有语义学、本地存储、设备访问、连接性、多媒体、平面和三维效果、性能和集成和CSS3八大技术特征。让Web应用进入无插件时代,在功能和性能上逼近桌面应用。促使应用Web化...

dbsynfzd93506的博客 220

配电网可靠性评估(一)—最小路法和非序贯蒙特卡洛模拟法的matlab实现

电力系统的可靠性研究是相关领域的热点问题。根据研究对象的不同,又可分为发电系统的可靠性,输电系统的可靠性和配电系统的可靠性。配电网在电力系统中处于最末端的位置,直接和用户相连,一旦出现故障情况,就会在用户侧表现为停电事故。因此对配电网的可靠性评估有着重大意义。......

配电网和matlab的博客 1万+

网络安全实战:从Wireshark到BurpSuite的抓包技巧解析

本文深入解析了Wireshark和BurpSuite在网络安全抓包中的实战技巧,从基础对比到高级过滤、核心模块应用及安全测试避坑指南。通过详细的操作步骤和案例分析,帮助读者掌握数据包抓取与分析的核心技能,提升网络安全防护能力。

weixin_29207533的博客 572

从HTML5移动应用现状谈发展趋势

作者注:此文章原为2013年5月的《程序员》杂志所做,现刊登于此,以飨读者。从HTML5移动应用现状谈发展趋势        时光如梭,自2008年HTML5诞生以来已经过去了5年的时间,作为新一代的Web标准,它自问世以来就受到方方面面的强烈关注,也引起了许多争议,支持者因其开放强大的特点而鼓吹它的美好前景,质疑者因其迟迟不能很好落地而怀疑它的实际作用。现在我们从现状入手,以提问的方式针对HTM

蒋宇捷的专栏 1万+

rk3576 点亮 LCD(mipi)

瑞芯微 RK3576 是一款面向中高端 AIoT 市场的 SoC,其 MIPI DSI (Display Serial Interface) 接口在性能和灵活性上相比前代(如 RK3399/RK3568)有显著提升,特别是在物理层协议的支持上更加现代化。相比RK3399 RK3568的mipi 接口少了 8lane,但是RK3576 MIPI DSI 增加更低功耗的 C-PHY。

weixin_35723192的博客 363

html5移动wb开发题库,《HTML5移动Web开》课后习题及答案复习课程.doc

1.请列举移动开发的几种方式。答案:当前,针对移动端的开发方式可以分为三种,具体如下。移动Web:就是在移动Web浏览器中运行的Web应用。NativeApp:用Android和Object-C等原生语言开发的移动应用。HybridApp:将移动Web页面封装在原生外壳中,以APP的形式与用户交互。2.请列举基于HTML5的移动Web开发支持那些新功能。答案:多媒体Canvas本地存储离线应用地理...

weixin_42132354的博客 1250

十.镜头知识之畸变问题

对于理想光学系统,在一对共轭的物像平面上,像的放大率是一个常数。但是对于实际的光学系统,当视场较大或很大时,像的放大率就要随视场而异,这样就会使像相对于物体失去相似性。这种使像变形的成像缺陷称为畸变。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 2124

【科学文献计量】标准参考出版年谱(Standard RPYS)和多维参考出版年谱(Multi RPYS)

@[TOC](标准参考出版年谱(Standard RPYS)和多维参考出版年谱(Multi RPYS)) 1 标准参考出版年谱与多维参考出版年谱 1.1 标准参考出版年谱(Standard RPYS) 标准参考出版年谱(Standard Reference Publication Year Spectroscopy)是由Marx, Bornmann, Barth, and Leydesdorff(2014)和Marx and Bornmann(2014)提出的一种量化历史出版物对研究领域影响的方法。该方法通

lys_828的博客 1103

Web移动应用:HTML5,CSS和JavaScript

移动设备的广泛使用,使许多传统开发者很无奈。一个企业真的既需要一个Web站点又需要一个移动应用程序吗?本文讨论了HTML 5的可移植性以及为什么在所有的移动平台上都可以良好运行的HTML5,CSS和JavaScript应用程序才是未来的趋势。 许多开发者已经得出了结论:他们需要把注意力集中在特定的移动平台上——例如iPhone,Windows7或Android。而其他人开始意识到有许多...

aa88342249的博客 261

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

搭建html5的,HTML5 - 搭建移动Web应用

关于HTML5HTML5具有语义学、本地存储、设备访问、连接性、多媒体、平面和三维效果、性能和集成和CSS3八大技术特征。让Web应用进入无插件时代,在功能和性能上逼近桌面应用。促使应用Web化,实现跨平台。HTML5规范草案将于2012年发布候选推荐版,2022年发布计划推荐版。规范的实现似乎还在遥远的未来,其实不然!当前很多浏览器已经部分支持HTML5,caniuse.com提供了详尽的浏览器...

weixin_30674431的博客 204

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

html5移动开发在线阅读,HTML5移动Web开发

内容简介近些年,移动互联网迅速进入人们的生活、工作中。在移动互联网中起支撑作用的网页、APP等开发技术也已经成熟。除了原生的Android与iOS外,HTML5也是移动Web技术中不可忽视的一种开发模式。本教材详细讲解了HTML5在移动Web开发中的应用,包括多媒体、canvas、本地存储、离线应用、地理定位、拖曳、文件操作、移动端事件、移动端常用布局等,除这些相对独立的技术点讲解,本教材还讲解了...

weixin_29248313的博客 456

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【精品教程】HTML5移动Web开发指南文档分享

本书主要围绕HTML5 技术,讲述如何利用HTML5 相关技术开发移动Web 网站和Web App 应 用程序。本书共分为四大部分,第一部分主要讲述Web 技术的发展及HTML5 标准在移动Web 技术 中的应用;第二部分主要介绍HTML5 的新功能和新特性如何在移动设备浏览器中使用及相关展望; 第三部分主要介绍目前比较流行的两套JavaScript 移动开发框架jQuery Mobile、

u013490060的专栏 1649
上一篇: java EE开发之Servlet第八课:MVC模式 (基本理解)
下一篇: Centos7上进行ftp配置
Meryoufdd
博客等级 码龄5年 13粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值