思路:

  1、主要使用 Cordova的File插件

  2、获取需要替换的js文件安装后的路径

  3、软件使用js发起ajax请求,后台返回版本号跟客户端版本号对比

  4、如果发现需要更新js文件,则用js调用cordova的File插件下载服务器的js文件,替换本地js文件。

  5、然后载入本地js文件。

伪代码实现

index.html

<html>
<head>
<title>示例</title>
</head> <body>
<!--显示加载中-->
<div id="loading">loading....</div> <my-app></my-app> <!--第三方的js文件-->
<script type="text/javascript" src="3rdlibs.js"></script> <!--app自己的js文件加载控制器-->
<script type="text/javascript" src="appJsFileLoader.js"></script> </body>
</html>

  

appJsFileLoader.js

(function () {

	//获取当前安装的js文件的版本号
var localVersion = getLocalVersion(); //将本地版本发送到后台,后台判断是否本地版本需要更新,并告诉前台需要更新那些文件。
$.get("/xx/xx/getNewAppVersion.json",data:{localVersion:localVersion},function (result) { //发现新版本
if (result.isDiscoverNewVersion) { //更新需要更新的文件(包含js、css、image等)
cordovaDownloadJSFile(result.appFileUrlList,function (argument) { //替换本地js文件完成,则在html中加载js文件
loadLocalJSFile(); //隐藏loading
$("#loading").hide() }); }else{ //没有新版本,直接加载本地js文件。
loadLocalJSFile(); //隐藏loading
$("#loading").hide() }
}); })()

  

我怎么获取到我的js文件的路径呢?

    ----- cordova.file.applicationDirectory    获取的是asset文件夹

 
 

参考资料

 
http://www.cnblogs.com/lhp2012/p/5333154.html

http://www.yiibai.com/cordova/cordova_file_system.html

https://www.npmjs.com/package/cordova-plugin-file

Cordova从服务器更新客户端的JS文件的更多相关文章

  1. 强制更新客户端Silverlight XAP 文件

    在发布小程序更新的时候访问的总是原来的程序,猜想应该是缓存的原因.在网上查找方法 <div id="silverlightControlHost"> <objec ...

  2. 解决修改css或js文件后,浏览器缓存未更新问题

    问题描述:最近在上线新版本项目的时候,发现有的用户的操作还是调用的老版本JS里面的内容,这样就造成原来新的JS里面加上的限制不能限制用户的操作,从而导致用户可以重复操作. 问题产生原因: 如果在用户之 ...

  3. 通过本地加载ga.js文件提高Google Anlytics性能

    Google Anlytics 分析代码是异步加载的,一般来讲不会影响网页性能,但是技术部的网页性能报告里老是提到ga.js的状态为Aborted,说明ga虽然是异步跟踪,但某些情况下对网页性能与加载 ...

  4. 引入其他服务的JS、和 本地的JS文件,script的属性

    ==============使用其他服务器引入JS文件,1,减轻服务器压力2,速度快3,可以缓存 cdnjs库,更新比较快https://cdnjs.com/ cdn库 引入JS文件如:jqueryb ...

  5. 【node】node的核心模块---http模块,http的服务器和客户端

    nodejs事件机制 ##### http服务器和客户端 node.js标准库提供了http模块,其中封装了一个高效的http服务器和一个简易的http客户端 HTTP服务器 1. http.crea ...

  6. 关于引用JS和CSS文件刷新浏览器缓存问题,部署服务器后客户端样式不刷新

    问题描述 对样式的css文件进行了修改,部署到服务器后访问发现页面展示不正常,但是刷新之后就会展示正常. 问题分析 研究之后发现可能的原因有 css文件过大,加载缓慢 本地缓存问题,虽然服务器修改了c ...

  7. 关于更新发布CSS和JS文件的缓存问题

    现如今,浏览器大战下,各个浏览器也是拼了命的提高性能,升级JS解析引擎,更好的处理浏览器的页面缓存,让用户的浏览体验更快,占用更小的PC资源.那么,问题就出现在JS和CSS缓存,甚至页面缓存上.至于浏 ...

  8. nginx下js文件修改后访问不更新问题解决

    今天遇到一个问题,nginx下js修改后不更新,加版本号,刷新浏览器缓存都不行,重启服务器才行,修改后又不更新了而且加载的js文件会有乱码或者文件加载不全的问题. 解决办法:修改nginx.conf, ...

  9. Node.js学习笔记(4)——除了HTTP(服务器和客户端)部分

    很多node入门的书里面都会在介绍node特性的时候说:单线程,异步式I/O,事件驱动. Node不是一门语言,它是运行在服务器端的开发平台,官方指定语言为javascript. 阻塞和线程: 线程在 ...

随机推荐

  1. JAVA 十六进制与字符串的转换

    public static String toHexString(int i)以十六进制的无符号整数形式返回一个整数参数的字符串表示形式.如果参数为负,那么无符号整数值为参数加上 232:否则等于该参 ...

  2. [强连通分量] POJ 2186 Popular Cows

    Popular Cows Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 31815   Accepted: 12927 De ...

  3. NSRunLoop概述和原理

    1.什么是NSRunLoop?我们会经常看到这样的代码: - (IBAction)start:(id)sender{pageStillLoading = YES;[NSThread detachNew ...

  4. 常用dos命令 如查询端口号是否被占用

    ①查询端口号是否被占用掉 在windows命令行窗口下执行:运行--cmdC:\>netstat -aon|findstr "8080" TCP 127.0.0.1:80 0 ...

  5. 百度定位并获取县区天气-XML+fragment+sqlite

    此工程较BaiduLocationXMLFragment相比:1.加入数据库部分,将获取到的地址  天气存入数据库中,离线状态显示数据库最后一条记录 sqlite: DatabaseHelper.ja ...

  6. ArrayList与普通数组的区别

    import java.util.ArrayList; public class Shuzuqubie { public static void main(String[] args){ String ...

  7. How To Use Hbase Bulk Loading

    最近在学习hbase,学到利用如何将数据导入到hbase中,采用的方式是批量导入:bulk load的方法,中间出现了一些问题,下面将执行的步骤记录一下,以供日后查阅: 说明:导入的方式是将csv文件 ...

  8. Android Framework层Power键关机流程(二,关机流程)

    二,关机流程 从前一篇博文我们知道,当用户长按Power键时会弹出(关机.重启,飞行模式等选项)对话框,我们点击关机,则会弹出关机确认对话框.那么从选项对话框到关机确认对话框又是一个什么流程呢.下面我 ...

  9. PHP正则表达式的快速学习方法

    1.入门简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或 ...

  10. Day18_集合第四天

    1.Map集合成员方法(掌握) 增加功能 V put(K key, V value) 当key在集合中不存在时,添加元素:当key在集合存在时候,替换元素 删除功能 void clear 清除所有键值 ...