未找到

索引:像Mongo一样查询IndexedDB
by 1518409521 keys 行业动态 开源 1400458278563

作为Riggr SPA库的一部分,我一直在做这个项目,在这个项目中我想用和Mongo同样的交互方式使用IndexedDB。
IndexedDB(如果你还没使用它)对于客户端/浏览器数据存储来说是一个很有用的解决方案。虽然对老版本浏览器的支持依然缺乏,使用IDB更新应用程序,甚至作为一个不支持老版本浏览器的特性, IndexedDB绝对是值得的。

未发布 Fastreport.Net用户手册:表达式显示
by 鸟栖沙岩 keys 分享 1475131247851

Text"对象能够包含带有表达式的纯文本。例如:


Today is [Date]


当在打印这样的对象时,所有包含在文本中的表达式都会被计算出来。所以结果会是这样:


Today is 12.09.2010


你可以看到,表达式通过方括号被识别。这是在包含字符串 "[,]"的"Brackets"属性中设置的。在需要时,你可以为其设置不同的符号,例如 "<,>"或者"<!,!>"。如果设置为"<!,!>",将会有如下显示:


Today is <!Date!>


除此之外,禁用所有表达式也是可以的。你只需设置 AllowExpressions属性为false。在此种设置下文本将不会被识别为表达式。

在方括号内,你可以使用任何有效的表达式。例如,一个含有如下文本的对象:


2 * 2 = [2 * 2]


将会被打印成如下效果:


2 * 2 = 4


常犯的错误 — 尝试在方括号外编写一个表达式。例如:


2 * 2 = [2] * [2]


此文本将会打印出如下效果:


2 * 2 = 2 * 2


有一些在表达式中的元素需要其自己的方括号。例如,一个到系统变量的引用。让我们来看看下面这个例子:


The next page: [[Page] + 1]


此文本包含表达式[Page] + 1。Page是一个系统变量,表示当前报表页的数量。它被包含在自己的括号里。这些括号必须为方括号,此处无关"Text"对象设置。

严格来说,在上面举例这种使用 "Date"系统变量的情况事我们应该使用两对方括号:


Today is [[Date]]


然而FastReport可以帮您省去不必要的括号与其它繁琐操作。


相关链接:

未发布 LeadTools中文入门教程(4):使用OCR识别英文
by Elyn keys 分享 1468303894619
本文主要为大家介绍在OCR文档中如何处理和识别页面以及创建具体应用程序的步骤,附上DEMO下载。
为什么软件开发周期通常是预期的两三倍?
by ourjs keys 大话编程 1376625352000

有国外开发者在 Quora 提了这个问题:“为什么软件开发周期通常是预期的两三倍?” 并补充问:“这是开发人员的错误? 是管理失误? 是因为做事方法不对, 或者说缺乏好的方法?还是说这就是软件开发流程的特点?”

未发布 嵌入式跨平台C++3D界面开发框架最新版Qt 5.6 支持高DPI缩放
by AABBbaby keys 分享 1458615410514
Qt 5.6改进了高DPI支持,以更好的形式支持devicePixelRatio缩放模式。在本文中,我们将看看如何从Qt应用程序用户和Qt应用程序开发人员的角度配置和启用它。
JavaScript使用类似break机制中断forEach循环
by ourjs keys JS学习 JavaScript 1542069544477
JavaScript数组对象,有一个forEach方法,可枚举每一个数组元素,但并不支持类似for循环的break语法,中断循环:

[1,2,3].forEach(function(item) {
    // if(!item) break; 不支持
});
“设计师思维”正在毁灭我们
by kris keys 心得体会 创业 1401357336894
设计师思维贬低你公司自己的人才,文化,市场和独特秘籍。它告诉界面设计团队,任何内部建议都不可信,即使他们 是从客户角度出发或者以前的经验或者市场意识。更糟的是,它可以促使团队只关注改进,而非用户反馈。而且大多数重大变更并不是来自客户反馈———他们来自 个人感觉,基于他们自己的一个想法。


未发布 MyEclipse WebSphere开发教程:WebSphere 8安装指南(一)
by AABBbaby keys 分享 1511407121883

【周年庆】MyEclipse个人授权 折扣低至冰点!立即开抢>>

MyEclipse最新版下载

IBM为使用WebSphere测试应用程序的开发人员提供了免费的WebSphere Application Server (WAS)运行时版本。本指南提供下载和安装该WAS 8运行时版本组件的说明。在本指南中,您将学习到:

  • 安装WebSphere 8和更新
  • 禁止启动Windows系统服务运行WebSphere

没有MyEclipse?立即下载

未发布 【示例教程】使用leadtools的WCF接口功能实现从web端上传Dicom影像文件
by Harriet666 keys 分享 1517903663716
Leadtools 19总套包下载>>>
 
leadtools为web端提供了wcf接口来供用户可以登录pacs系统,检索,查看以及上传影像。本篇博客讲解如何创建一个网页来实现上传功能,通过WCF进行dicom文件的上传时,是将dicom文件转换为base64数据流,分段进行传输。
 
本篇博客运行的前提是已经部署完成Leadtools HTML5 Web Viewer,可以正常浏览。参考https://www.evget.com/article/2018/2/6/27757.html
 
在部署完成后,将下面的代码复制到一个HTML文件中,即可运行进行测试。另外需要添加html文件所需的jquery.min.js到同文件夹路径下。
<head>
    <meta charset="UTF-8">
head>

<form onsubmit="return false;">
    <input type="hidden" name="file_base64" id="file_base64">
    <input type="file" id="fileup" multiple="multiple">
    <input type="submit" value="submit" onclick="$.post('./uploader.php', $(this).parent().serialize());">
    <div>
        <div id="msg">div>
    div>
form>
<script src="scripts/jquery.min.js">script>
<script>

    $(document).ready(function () {
        authcookie = login();
        document.cookie = "authcookie=" + authcookie;
        $("#fileup").change(function () {
            getauthcookie("authcookie");
            filelist = this.files;
            file = filelist[fileindex];
            upload(file);
        });
    });
    var authcookie;//保存authcookie
    var filelist;//上传文件列表
    var file;//当前上传文件
    var tempfile = "";//临时文件名称
    var position = 0;
    var size = 40000;//分段大小
    var done = false;
    var fileindex=0;//当前上传文件序列号

    function upload(tempfile) {
        if(position==0)
            done=false;
        var reader = new FileReader();
        if (file.size > position + 40000)
            reader.readAsArrayBuffer(file.slice(position, position + 40000));
        else 
            reader.readAsArrayBuffer(file.slice(position, file.size));
        reader.onload = function (e) {
            if (e.target.readyState === 2) {
                var base64string = base64ArrayBuffer(e.target.result);
                var data = {
                    authenticationCookie: authcookie,
                    dicomData: base64string,
                    fileName: tempfile,
                    status: position==0?"start":"append"
                };
                tempfile = senddata(JSON.stringify(data));
                if (!done) {
                    position += 40000;
                    upload(tempfile);
                    if (position+40000>file.size)
                        done = true;
                }
                else {
                    var data = {
                        authenticationCookie: authcookie,
                        dicomData: "",
                        fileName: tempfile,
                        status: "done"
                    };
                    tempfile = senddata(JSON.stringify(data));
                    position = 0;
                    $("#msg").html($("#msg").html()+"第"+(fileindex+1)+"个文件已经上传完成

"); fileindex += 1; if (fileindex < filelist.length) { file = filelist[fileindex]; upload(tempfile); } else { fileindex = 0; $("#msg").html($("#msg").html() + "文件全部已经上传完成

"); } } } }; } function senddata(data) { var result; $.ajax({ type:"post", url: "http://localhost/MedicalViewerService19/StoreService.svc/UploadDicomImage", data: data, contentType: "application/json", dataType: "json", success: function(data){result= data}, async: false }); return result; } function login() { var auth; var logininfo = { userName: "a", password: "a", userData: "" }; $.ajax({ type: "post", url: "http://localhost/MedicalViewerService19/AuthenticationService.svc/AuthenticateUser", data: JSON.stringify(logininfo), contentType: "application/json", dataType: "text", success: function (data) { auth= data }, async: false }); return auth; } function query() { } function getauthcookie() { document.cookie.split(";").forEach(function (val, index) { var index = val.indexOf("="); if ($.trim(val.substring(0, index)) == "authcookie") { authcookie = $.trim(val.substring(index + 1, val.length)); } }); return ""; } function base64ArrayBuffer(arrayBuffer) { var base64 = ''; var encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; var bytes = new Uint8Array(arrayBuffer); var byteLength = bytes.byteLength; var byteRemainder = byteLength % 3; var mainLength = byteLength - byteRemainder; var a, b, c, d; var chunk; // Main loop deals with bytes in chunks of 3 for (var i = 0; i < mainLength; i = i + 3) { // Combine the three bytes into a single integer chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]; // Use bitmasks to extract 6-bit segments from the triplet a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18 b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12 c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6 d = chunk & 63; // 63 = 2^6 - 1 // Convert the raw binary segments to the appropriate ASCII encoding base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]; } // Deal with the remaining bytes and padding if (byteRemainder == 1) { chunk = bytes[mainLength] a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2 // Set the 4 least significant bits to zero b = (chunk & 3) << 4; // 3 = 2^2 - 1 base64 += encodings[a] + encodings[b] + '=='; } else if (byteRemainder == 2) { chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]; a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10 b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4 // Set the 2 least significant bits to zero c = (chunk & 15) << 2 // 15 = 2^4 - 1 base64 += encodings[a] + encodings[b] + encodings[c] + '='; } return base64; } script>

6

Hacker News创始人预测,下一轮经济危机即将到来
by sasasamoa keys 行业动态 分享 1404293467830

注* 本文作者为 Paul Graham是位著名程序员,是风投公司Y Combinator(简称YC)的创始人。 本文译自其博客。

我在几个星期以前写了一篇文章,在文章里我说宏观经济崩溃“可能发生”,几个朋友问我为什么。需要明确的是,我不认为这是有可能的结果,我想我们会找到一个方法来解决我们面临的那些挑战。但我在这里列出的是其中的一些挑战。

 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. 在无管理员权限的情况下,使用安装Python补全pip临时配置环境变量;即零权限使用node.js/npm
  2. Python鉴权方法:Depends 依赖注入;装饰器;与基于Proxy模式的Session状态管理自动计算脏属性;将用户数据存储在Redis中
  3. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  4. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  5. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  6. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  7. Node.js 打印vite react+go项目目录树
  8. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  9. Windows与Mac通过git ssh和rsync实现文件共享互传
  10. Windows与Mac通过git ssh和scp实现文件共享互传

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA