
一般情况下,浏览器中是无法直接和本机的其他的程序进行交互的,在IE中,我们可以通过ActiveX对象的方式进行。但是这个方式只适用于IE浏览器,另一种比较通用的方式便是URL协议的方式,我们将某种URL的协议注册给某个程序来进行处理,比如将tencent://这样的协议注册给QQ程序来进行处理,当浏览器需要访问这样的协议的时候就转给QQ程序进行处理。这种URL协议的方式是可以跨平台的,比如在Windows上你需要添加注册表项。
首先先看看js应该如何调用qq客户端。
window .open(" tencent://message/?uin=346915968 ")
window.open顾名思义,打开。Tencent就不用多说了吧 BAT之T。上述能直接打开qq帐号对应的对话框。由此可以知道网页上的在线客服功能是如何实现了吧。
那要是不需要打开对话框,就想要登陆qq应该如何实现呢?很简单呀:
window .open(" tencent://message/?uin=qq ") 不过调用应用这种跟黑客没什么差别的行为,浏览器一般都是禁止的,
选择允许后,
启动应用,qq客户端就会被调起。
为什么说这个呢,老板又给了个需求,想让调起qq客户端一样,想通过演示页面的一个按钮,调起售票系统的各种程序...
什么都不说了,先看看什么是自定义协议。
Pluggable Protocol,又叫URL Protocol,有时会叫Shell命令,通用的Protocol有http、ftp、mailto等,这些都是windows安装时自带的协议。
接着也实现一个简单的自己的自定义协议吧。
1,运行window,输入regedit打开注册表。 在HKEY_CLASSES_ROOT下面建一个自己起的名字的表。
用如下格式把各项值添上:
js打开qq音乐.exe
启动应用
end.
由于其事件驱动和异步特性,Node.js 已经飞速发展。但是,在现代网络中,仅仅快速是不够的。如果您计划使用 Node.js 开发您的下一个 Web 应用程序,您必须采取一切可能的步骤来确保您的应用程序比平时更快。本文介绍了 10 个技巧,这些技巧可以极大地加快基于 Node 的 Web 应用程序的速度。所以,让我们一一看看。
在构建 Web 应用程序时,有时您需要进行多个内部 API 调用来获取各种数据。例如,考虑一个用户仪表板。在渲染仪表板时,您可以执行以下假设调用:
为了检索这些详细信息,您可以为每个函数创建一个单独的中间件并附加到仪表板路由。但是这种方法的问题是一个函数必须等待前一个函数完成。另一种选择是并行执行这些调用。
众所周知,由于 Node.js 的异步特性,它在并行运行多个函数方面非常高效。我们应该利用这一点。由于我上面提到的功能不相互依赖,我们可以并行运行它们。这将减少中间件的数量并大大提高速度。
为了使事情并行化,我们可以使用 async.js,这是一个有助于驯服异步 JavaScript 的 Node 模块。这是一个片段,展示了如何使用 async.js 并行运行不同的函数:
如果您想了解有关 async.js 的更多信息,请务必查看该项目的GitHub页面。
按照设计,Node.js 是单线程的。由于这个事实,同步代码可能会锁定整个应用程序。例如,大多数文件系统 API 都有其同步对应物。以下代码段显示了如何同步和异步完成文件读取 *** 作:
但是如果您执行长时间运行和阻塞 *** 作,您的主线程将被阻塞,直到 *** 作完成。这会大大降低您的应用程序的性能。因此,请确保您始终在代码中使用异步 API,至少在性能关键部分。在选择第三方模块时也要小心。即使您采取一切预防措施来避免同步代码,外部库也可能会进行同步调用,从而影响您的应用程序的性能。
如果您正在获取一些不经常更改的数据,您可以将其缓存以提高性能。例如,使用以下代码片段获取最新帖子以显示在视图上:
如果你发博文不是太频繁,可以缓存posts数组,间隔后清空缓存。例如,我们可以使用redis模块来实现这一点。为此,您需要在服务器上安装 Redis。然后您可以使用调用的客户端node_redis来存储键/值对。以下片段显示了我们如何缓存帖子:
因此,首先我们检查帖子是否存在于 Redis 缓存中。如果是这样,我们从缓存中传递posts数组。否则,我们从数据库中检索内容,然后将其缓存。此外,在一段时间后,我们可以清除 Redis 缓存,以便获取新内容。
开启 gzip 压缩会极大地影响 webapp 的性能。当与 gzip 兼容的浏览器请求某些资源时,服务器可以在将响应发送到浏览器之前对其进行压缩。如果您不使用 gzip 压缩静态资源,浏览器可能需要更长时间才能获取它。
在 Express 应用程序中,您可以使用内置的express.static()中间件来提供静态内容。此外,您可以使用compression中间件来压缩和提供静态内容。这是一个显示如何执行此 *** 作的片段:
随着 AngularJS、Ember、Meteor 等许多强大的客户端 MVC/MVVM 框架的出现,创建单页应用程序变得非常容易。基本上,您只需公开向客户端发送 JSON 响应的 API,而不是在服务器端呈现。在客户端,您可以使用框架来使用 JSON 并在 UI 上显示。从服务器发送 JSON 可以节省带宽,从而提高速度,因为您不会在每个请求中发送布局标记。相反,您只需发送纯 JSON,然后在客户端呈现。
看看我的这个教程,它描述了如何使用 Express 4 公开 RESTful API。我还写了另一个教程,展示了如何使用 AngularJS 与这些 API 交互。
在典型的 Express Web 应用程序中,会话数据默认存储在内存中。当您在会话中存储太多数据时,会增加服务器的大量开销。因此,您可以切换到其他类型的存储来保留会话数据,或者尝试最小化会话中存储的数据量。
例如,当用户登录到您的应用程序时,您可以只将他们存储id在会话中,而不是存储整个对象。随后,对于每个请求,您都可以从id. 您可能还想使用 MongoDB 或 Redis 来存储会话数据。
假设您有一个博客应用程序,它在主页上显示最新帖子。你可能会写这样的东西来使用 Mongoose 获取数据:
但问题是find()Mongoose 中的函数会获取对象的所有字段,并且对象中可能有几个字段在Post主页上不需要。例如,comments是一个这样的字段,它包含特定帖子的一组评论。由于我们没有显示评论,我们可能会在获取时将其排除。这肯定会提高速度。我们可以这样优化上面的查询:
并非所有浏览器都支持对集合进行不同的 *** 作,例如map、reduce和。forEach为了克服浏览器兼容性问题,我们一直在前端使用一些客户端库。但是使用 Node.js,您可以确切地知道 Google 的 V8 JavaScript 引擎支持哪些 *** 作。因此,您可以直接使用这些内置函数在服务器端 *** 作集合。
Nginx是一个小巧轻便的 Web 服务器,可用于减少 Node.js 服务器上的负载。您可以配置 nginx 以提供静态内容,而不是从 Node 提供静态文件。您还可以设置 nginx 以使用 gzip 压缩响应,以便整体响应大小较小。因此,如果您正在运行生产应用程序,您可能希望使用 nginx 来提高速度。
最后,通过将多个 JS 文件压缩并合并为一个,可以极大地提高您的 Web 应用程序速度。当浏览器遇到一个
1、小程序不是运行在浏览器中,所以没有DOM和BOM对象2、小程序的JS有一些额外的成员
App方法 用于定义应用程序实例对象
Page方法 用于定义页面对象
getApp方法 用于获取全局应用程序对象
getCurrentPages方法 用来获取当前页面的调用栈(数组 最后一个就是当前页
wx对象 用来提供核心api的 官方链接: https://developers.weixin.qq.com/miniprogram/dev/api/
3、小程序JS是支持CommonJS规范的
eg:
./utils/foo.js文件
function say(msg){
console.log("hello"+msg)
}
module.exports = {
say:say
}
app.js文件
const foo = require("./utils/foo.js")
foo.say("hi")
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)