首页 文章 精选 留言 我的

精选列表

搜索[标签页组],共10000篇文章
优秀的个人博客,低调大师

apiCloud如何打开新页面的同时,关掉当前页

方法很多,只要不同时open、close都可行。给你一个简单的方式: api.addEventListener({ name:'viewdisappear' },function(){ api.closeWin({ name:api.winName }); }); 谢谢官方提供的方案,棒棒的! 使用场景,选择好友加入群组! 群生成之后,关闭选择页面! <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/> <title>title</title> <link rel="stylesheet" type="text/css" href="api.css"/> <link rel="stylesheet" type="text/css" href="../css/aui.2.0.css"/> <style> body{ } </style> </head> <body style="background: #eae6e6;"> <header class="aui-bar aui-bar-nav aui-margin-b-15" id="aui-header"> <a class="aui-pull-left aui-btn" tapmode onclick="closeWin()"> <span class="aui-iconfont aui-icon-left"></span>取消 </a> <div class="aui-title">选择朋友</div> <a class="aui-pull-right aui-btn"> <span class="aui-iconfont" style="color:#3F8A2C;" onclick="confirmChooseEvent();">确定</span> </a> </header> </body> <script type="text/javascript" src="../script/api.js"></script> <script type="text/javascript" src="../script/config.js"></script> <script type="text/javascript" src="../script/jquery.min.js"></script> <script type="text/javascript" src="../script/message_common.js"></script> <script type="text/javascript" src="../script/common.js"></script> <script type="text/javascript"> apiready = function () { fix_status_bar(); var header_height = $api.dom("header").offsetHeight; api.openFrame({ name: 'message_choose_friends_frm', url: 'message_choose_friends_frm.html', rect: { x: 0, y: header_height, w:'auto', //宽度,若传'auto',页面从x位置开始自动充满父页面宽度 h:api.winHeight - header_height //高度,若传'auto',页面从y位置开始自动充满父页面高度 }, bgColor:'rgba(0,0,0,0)', bounces:false, vScrollBarEnabled:false, hScrollBarEnabled:false }); // 监听页面消失的时候,关掉页面就可以了 api.addEventListener({ name:'viewdisappear' },function(){ api.closeWin(); }); } function confirmChooseEvent() { api.sendEvent({ name: 'confirmChooseEvent', extra: { } }); } </script> </html> frm页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"> <title>选择朋友</title> <link rel="stylesheet" type="text/css" href="../css/aui.2.0.css"/> <link rel="stylesheet" href="../css/message_style.css"> <style> .s_mapul { position: absolute; top: 0; left: 0; width: 100%; max-height: 350px; overflow: scroll; background: #fff; overflow-y: auto; } .s_mapul li { border-bottom: 1px solid #ededed; padding: 0.3rem 5%; position: relative; } .s_mapul li h2 { font-size: 0.8rem; } .s_mapul li h2 img { position: absolute; right: 5%; height: 1rem; } .s_mapul li p { font-size: 0.6rem; color: #b0b0b0; margin-top: 0.2rem; } </style> </head> <body> <script type="text/javascript" src="../script/api.js"></script> <script type="text/javascript" src="../script/common.js"></script> <script type="text/javascript" src="../script/message_common.js"></script> <script type="text/javascript" src="../script/config.js"></script> <script type="text/javascript" src="../script/doT.min.js"></script> <script type="text/javascript" src="../script/jquery.min.js"></script> <script type="text/javascript" src="../script/convertPinyin.js"></script> <script> var user; var UIListCheck; apiready = function () { fix_status_bar(); user = $api.getStorage('user'); // 监听页面关闭 api.addEventListener({ name: 'confirmChooseEvent' }, function (ret, err) { getSelectedSync(); }); api.ajax({ url: BASE_URL_ACTION+'/RongCloud/GetFriends', method: 'post', data: { values: { customerId: user.person_id, } } }, function (json, err) { if (json.result) { dealFriendsData(json.info,function(contacts) { UIListCheck = api.require('UIListCheck'); UIListCheck.open({ rect: { x: 0, y: 22, w: api.frameWidth, h: api.frameHeight - 22 }, contacts: contacts, fixedOn: 'message_choose_friends_frm' }, function (ret) { if (ret) { } }); }); } else { toast('获取好友数据失败'); } }); } function dealFriendsData(data,callback) { var contacts = []; for (var i=0;i<data.length;i++) { var item = {}; item.employee_id = data[i].Id; item.remark = data[i].NickName; item.position = ""; item.phonetic = convertPinyin(data[i].NickName); contacts[i] = item; } if (typeof callback == 'function') { callback(contacts); } } function getSelectedSync() { var ret = UIListCheck.getSelectedSync(); var contacts = ret.contacts; if (contacts.length == 0) { toast('请选择好友'); return; } var values = { systemName : 'yunlutong', customerId : user.person_id } for(var i = 0;i<contacts.length;i++) { var key='contactIds['+i+']'; values[key]= contacts[i].employee_id; } api.ajax({ url : BASE_URL_ACTION+'/RongCloud/AddGroup', method : 'post', data : { values : values } }, function(json, err) { if (json.result) { toast('创建成功'); setTimeout(openChatPage('',json.groupid,0,'群聊','GROUP','index',''),500); // 本来想在这里处理的,发现不管用 } else { toast('创建失败'); } }); } </script> </body> </html>本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/7212227.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

家里有个程序员之业余少儿组🤣

为了迎接 1024 程序员节,OSChina 开源中国新增了【家里有个程序员】栏目,记录一下 OSCer 们当前的生活,欢迎各位 OSCer 踊跃投稿呀。 投稿细则:https://my.oschina.net/u/3859945/blog/15727245 作为一个最最普通(换一种说法,就是最最底层😂)的老程序员,没有要分享的开源项目,没有要分享的技术经验,仅仅就是想分享一下写代码这个爱好如何影响我的生活。 简单来说就是代码让我变懒,懒到每天吃饭都想写个eat()来执行一下,这样就不用重复进行夹菜,张嘴、送菜、闭嘴、咀嚼、下咽这些简单动作来浪费我的时间了。写代码也不仅仅是我的爱好,我也半路出家,成了一个依靠写代码糊口的码农(挣的太少,不够养家)。 上学的时候,写代码就不是我的专业,但是也会偶尔写一写,原因就是我在大学里一直是被别人控制(可以理解为军事化管理),我想控制一下别人,而代码,可以完全控制计算机,有人喜欢打游戏,我也喜欢,但是我打游戏也有一种被游戏制作者控制的感觉。这种控制别人的感觉,在写汇编语言和嵌入式的LED程序的时候尤为明显。除了让我体验控制的快感之外,写代码还让我在研究生期间收获了可以毕业考评加分的全国比赛奖项和软件著作权,给我毕业带来了很大帮助。 上班之后干的工作类似于文秘,代码就成了我偷懒的最好同伙。为了统计新闻上稿情况,写了一个python爬虫,把两个小时的繁琐工作简化成为2分钟。为了不手写工作日志写个软件每天从数据库把工作调出来整理好,维护内部视频网站时就搞了一个自动下载上传更新的工具。整个单位的数据整理也写个工具自动处理,生成统一规范的报表。最开心的时候就是领导夸我工作努力肯下工夫,而我几分钟都没花。 最让我得意的软件,是一个写给女朋友(现在是媳妇儿了)的软件,帮助她去实验预约的网站抢热门时段的实验仪器。这个软件技术上并不复杂,做的也不精美,类似抢票软件,但是讨了美人欢心,让我深切体会到了美人一笑值千金。 后来,我告别体制,回到了老家二三线城市,成了一个靠java过活的码农,33%为了爱人,33%为了回家,33%为了梦想,还有1%为了其它(是的,严谨的我不会漏掉default)。 选择Java的原因很简单,因为好找工作,刚好在离职半年前做了一个web程序,而且遍地都是招Java的,面试的也不严格,工资好像比前端高,果断放弃了.net啥的。但是我一直都认为自己还是一个业余的程序员,无论从技术上还是心理上(虽然入职以后发现同事好多比我还菜),但是这个业余爱好却实实在在给我带来了一份收入,虽然收入并不高,却不会让我为了它加班、熬夜。 要说技术上我的水平,那真是不值一提。我做的东西简直就是大杂烩,有WPF、有WinForm等.net的,有QT的,有python的,甚至MFC和WTL的都有,做过android原生的,也研究过Flutter一两回,自然也是毫无经验可谈,全是反而教材。比如我比较爱游戏编程,就开始研究游戏引擎,不知道做了多少个版本的贪吃蛇和俄罗斯方块,什么cocos、unity、godot,全都是浅尝辄止、不求甚解。 直到现在,我现在还会看自己感兴趣的技术,做一些小小的软件。突然兴趣来潮了开始学Qt了,过了两天就觉得electron效率更高,又过了两天觉得tauri是未来。最后是十门都不通,一门也不精。但是又能怎么样呢?乘兴而行,兴尽而返,随心所欲,菜并快乐着,就是我的编程哲学。 我觉得自己做的最具有一个程序员专业素养的事就是,这段文字是我上班摸鱼的时候写的。如果实在够不上这个专栏,那我只能等《家里有个业余程序员》专栏开启了🤣。

优秀的个人博客,低调大师

WGCLOUD 监控系统更新,重构告警信息开关组,提升性能

WGCLOUD基于java语言开发,是微服务架构构建监控系统,支持高并发高性能高可用,核心模块包括:服务器集群监控,ES集群状态监控,CPU监控,内存监控,数据监控(mysql,postgresql,oracle,sqlserver,db2),服务心跳检测,应用进程管理,磁盘IO监控,系统负载监控,监控告警信息推送。 此次更新,新增告警信息推送的开关组合,可以在配置文件中开启和关闭,灵活配置。 #告警配置 mail: #告警邮件总开关,yes开启,no关闭 allWarnMail: yes #监控主机内存使用率%报警值,超过此值即发送邮件报警 memWarnVal: 98 #监控主机cpu使用率%报警值,超过此值即发送邮件报警 cpuWarnVal: 98 #内存告警邮件,yes开启,no关闭。总开关开启后,此处设置才会生效。以下开关均遵循此规则。 memWarnMail: yes #CPU告警邮件,yes开启,no关闭 cpuWarnMail: yes #主机下线告警邮件,yes开启,no关闭 hostDownWarnMail: yes #进程下线告警邮件,yes开启,no关闭 appDownWarnMail: yes #服务接口告警邮件,yes开启,no关闭 heathWarnMail: yes 码云源码下载:https://gitee.com/wanghouhou/wgcloud GITHUB源码下载:https://github.com/tianshiyeben/wgcloud 安装包下载:http://www.wgstart.com

优秀的个人博客,低调大师

决定网络安全市场“钱途”的五组数字

新冠肺炎疫情爆发,一夜之间中国成了史上规模最大的远程办公社会。但这次敦刻尔克式的数字安全边界迁徙,伴生了大量安全威胁,当所有的羊群都离开羊圈在丛林中过夜,想象一下牧羊犬的心理阴影面积。安全牛保守估计,新冠肺炎至少会催生千亿级别的与安全紧密相关的远程办公市场需求。 新冠病毒,这个所有安全人士始料未及的“攻击向量”,成为斯诺登之后,中国网络安全行业面临的最大一次颠覆性事件(我们尚无法将其定义为机遇)。 2020年,不仅仅是中国,全球网络安全市场都面临重大转折,除了系好安全带,我们还需要在暴风雪封锁的路面奋力搜寻路标,哪怕是一块限速标志牌也能给人极大的方向感和安全感。近日,《网络犯罪杂志》基于CyberSecurity的研究报告中推断出5个网络安全市场的关键数据点,有助于我们以正确的姿势迎接未来两年(2020-2021年)的网络安全风暴。 6万亿美元 到2021年,网络犯罪造成的损失预计每年将达到6万亿美元。 到2021年,网络犯罪造成的损失每年将耗费全球6万亿美元,高于2015年的3万亿美元。 这代表着历史上最大的经济财富转移,冒着创新和投资动机的风险,并且比所有主要非法药物的全球贸易总和更有利可图。 网络犯罪成本包括数据损坏和破坏、资金窃取、生产力损失、知识产权失窃、个人和财务数据失窃、贪污、欺诈、攻击导致的业务中断、司法调查、恢复和删除被入侵或泄露的系统和数据以及企业声誉受损。 卡巴斯基曾对2019年企业数据泄露损失进行过测算,结果如下: 可以看出,改进软件与基础设施、人员培训和招募安全人才是企业缓解安全风险的三大支出项。 1万亿美元 从2017年到2021年,网络安全支出将超过1万亿美元。 网络安全市场正在继续飞速发展,并朝着业界在2017年预测的万亿美元大关迈进。 2004年,全球网络安全市场价值35亿美元,到2017年,该市场价值超过1200亿美元。进入我们最近的预测周期以来,网络安全市场在过去13年中增长了约35倍。 从2017年到2021年,五年内全球网络安全产品和服务支出预计将累计超过1万亿美元。 350万 网络犯罪将使空缺的网络安全工作数量增加两倍以上, 预计到2021年将达到350万。 现在,每个IT职位也都是网络安全职位。每个IT工作者,每个技术工作者都需要参与保护和防御应用程序、数据、设备、基础架构和人员。 根据Cybersecurity Ventures的数据,到2021年,将有350万个网络安全工作空缺,足以塞满50个大型足球场。这预期数字远远超过了思科在2014年的预测——100万个网络安全岗位空缺。 自2011年以来,2019年的网络安全失业率一直为零。 70% 到2021年,70%的加密货币交易将用于非法活动。 加密犯罪是网络犯罪生态系统的新兴部分,并且正在蓬勃发展。 根据澳大利亚悉尼大学发布的一项研究,每年约有760亿美元的非法活动涉及比特币,接近美国和欧洲非法毒品市场的规模。 网络安全风险投资公司Cybersecurity Ventures预测,到2021年,每年所有加密货币交易中的70%以上将用于非法活动,而目前的估计范围是从5种主要加密货币中的20%,以及比特币的近50%。 57倍 从2015年到2021年,勒索软件的损失成本预计将增长57倍以上。 到2021年,全球勒索软件破坏成本预计将达到200亿美元,远高于2015年的3.25亿美元。 到2020年,对医疗组织的勒索软件攻击(医疗行业是此类攻击的最大受害者)将翻两番。 Cybersecurity Ventures预计,到2021年,每11秒就有一个企业成为勒索软件攻击的受害者,而2019年为每14秒一次攻击。这使勒索软件成为增长最快的网络犯罪类型。 【本文是51CTO专栏作者“李少鹏”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】 戳这里,看该作者更多好文

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册