V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  sagnitude  ›  全部回复第 11 页 / 共 11 页
回复总数  205
1 ... 2  3  4  5  6  7  8  9  10  11  
2015 年 10 月 17 日
回复了 flavoury 创建的主题 晒晒更健康 说一说大家在用的付费订阅服务
linode
PS Plus jp+us
Pocket
百度云
Pomotodo
Office 365
115
2015 年 10 月 17 日
回复了 xuexixuexi 创建的主题 Node.js 用 node-webkit 开发桌面程序怎么样?
@xuexixuexi 还是说你是起了 100 个线程,每个完成加 1%?
2015 年 10 月 17 日
回复了 xuexixuexi 创建的主题 Node.js 用 node-webkit 开发桌面程序怎么样?
@xuexixuexi 你用回调函数不就是异步的么

大约是如下的吧,参考了 http://www.cnblogs.com/yupeng/p/3469444.html

htmlpage.js

function requestNodejs() {
require('nodejs-c-extension').execute(params, function onTrunkGotCallback(percent) {
//update the progress
updateHtmlProgress(percent);
}, function onFinishCallback(responseData){
//task finished
updateHtmlByData(responseData);
});
}

nodejs-c-extension.cc

#include <node.h>

using namespace v8;

Handle<Value> HandleCall(const Arguments& args) {
HandleScope scope;

/*
* 3 arguments: params, trunkCallback, finishCallback
*/
Local<Value> params = Local<Value>::Cast(args[0]);
Local<Function> trunkCallback = Local<Function>::Cast(args[1]);
Local<Function> finishCallback = Local<Function>::Cast(args[2]);

const unsigned argc = 1;
Local<Value> argv[argc];
//Do some stuff and report the progress
for (int i = 0; i < 100; i++) {
argv[argc] = { Local<Value>::New(String::New(i) };
trunkCallback->Call(Context::GetCurrent()->Global(), argc, argv);
}

//finished, replace argv with data got
finishCallback->Call(Context::GetCurrent()->Global(), argc, argv);

return scope.Close(Undefined());
}

/*
* Define function exports.execute as HandleCall
*/
void Init(Handle<Object> exports, Handle<Object> module) {
exports->Set(String::NewSymbol("execute"),
FunctionTemplate::New(HandleCall)->GetFunction());
}

NODE_MODULE(nodejs-c-extension, Init)
2015 年 10 月 16 日
回复了 xuexixuexi 创建的主题 Node.js 用 node-webkit 开发桌面程序怎么样?
@xuexixuexi 写一个 nodejs 的 c/c++扩展

js 调用 nodejs->nodejs 调用扩展->扩展调用外部 c/c++程序->nodejs 获得返回值->js 获得返回值->用 js 更新页面
最后一步需要 nw.js 或者 Electron 框架(在 html 页面内和 nodejs 交互)

这是我猜的。。我只用过 CEF 。。
2015 年 10 月 15 日
回复了 xuexixuexi 创建的主题 Node.js 用 node-webkit 开发桌面程序怎么样?
基于这个开发就完全是前端的风格了,不管是干什么,都是 js ,不需要你去管底层,底层是 Chromium 框架接管了。
平时开发就完全是 js 环境了,按了一个按钮发生了什么是不用关心的,浏览器内核接管了,按按钮的处理也是由客户端 javascript 处理的,你如果想要按按钮去触发额外的 c++调用的话可能比较困难,需要自己接入 chromium 或者 nodejs 框架,然后自己编译一遍。
1 ... 2  3  4  5  6  7  8  9  10  11  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5574 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 08:22 · PVG 16:22 · LAX 01:22 · JFK 04:22
♥ Do have faith in what you're doing.