-
AngularJS进阶(二十九)AngularJS项目开发技巧之localStorage存储
2016-01-16 20:59:36AngularJS项目开发技巧之localStorage存储 绪 项目开发完毕,测试阶段发现后台管理端二维码生成有问题,问题在于localStorage的存储。如下图左所示,二维码生成完毕包含信息如下图左所示,实际二维码信息如下图右所...AngularJS项目开发技巧之localStorage存储
绪
项目开发完毕,测试阶段发现后台管理端二维码生成有问题,问题在于localStorage的存储。如下图左所示,二维码生成完毕包含信息如下图左所示,实际二维码信息如下图右所示:
经过测试发现二维码实际存储的是上一次的结果。好熟悉~Bingo,自己做导航栏高亮时就遇到过这个问题,当时就是使用的localStorage。问题还是出在localStorage身上。但是存储时:localStorage.setItem(key,value),如果key存在,则更新value。问题的根源正是设置好值之后,value没有更新。这个说法也不对,刷新之后,value的值确实变了。只不过变的时机不对。
回过头来看看之前二维码的生成,猛然发现原来之前使用localStorage生成的二维码也是不对的。必须得加以改进。通过Chrome调试,自己还是看出了一些问题,很明显,二维码生成早于获取订单详情信息。如下图所示:
二维码生成端测试语句:
var a = parent.document.getElementById("sunny");
console.log("a:");
console.log(a);
控制器:
document.getElementById("sunny").innerHTML = medInfo;
既然这样可以正确获取到数据,问题基本上就得到了解决。
var a = parent.document.getElementById("sunny");
console.log("a:");
console.log(a);
var qrcode = new QRCode(document.getElementById("qrcode"), {
width : 200, // 设置二维码宽高96
height : 200
});
qrcode.makeCode(a); // 生成二维码内容
以上语句便可生成正确的二维码信息。
残酷的现实
现实总是那么的残酷。生成的二维码不对,内容为空!
回过头来还得继续使用localStorage,但其保存的总是上一次的值,因为二维码页面加载早于父页面,导致localStorage的值总是滞后。
经过证实localStorage.removeItem('billInfo');确实起作用了。好纠结啊!
纠结纠结....
既然子页面加载较早,自己就想是不是可以通过延迟页面加载的方法解决。以下代码实现了子页面方法的延迟执行,结果亮了!可以了,我TTM佩服自己了!不容易啊!
<script> // 当页面加载的时候可以调用某些函数 window.onload = function(){ setTimeout(function(){ var billInfo = localStorage.getItem('billInfo'); console.log("billInfo:"); console.log(billInfo); var a = parent.document.getElementById("sunny"); console.log("a:"); console.log(a); var qrcode = new QRCode(document.getElementById("qrcode"), { width : 200, // 设置二维码宽高96 height : 200 }); qrcode.makeCode(billInfo); // 生成二维码内容 localStorage.removeItem('billInfo'); // qrcode.makeCode("http://192.168.1.105:8088/lmapp/billInformation.html"); },0.5*1000);//0.5秒后执行 }; </script>
有图有真相
总结
其实以上问题的解决只是绕过了localStorage,而没有实质性的解决localStorage存储问题。本质原因后期进行解决。有关子页面与父页面脚本执行先后顺序,应该是子页面较早执行,若子页面需要利用父页面中的值,则子页面脚本代码需要延迟执行。
参考文献
美文美图
-
AngularJS进阶(三十)AngularJS项目开发技巧之图片预加载
2016-01-18 11:28:22AngularJS项目开发技巧之图片预加载 绪 项目(移动端采用Ionic框架)开发完毕,测试阶段发现移动APP首页的广告图片(图片由服务器端返回相应url地址)很难加载,主要原因还是网速。如下图左所示,图片加载完毕如下图右...AngularJS项目开发技巧之图片预加载
绪
项目(移动端采用Ionic 框架)开发完毕,测试阶段发现移动APP首页的广告图片(图片由服务器端返回相应url地址)很难加载,主要原因还是网速。如下图左所示,图片加载完毕如下图右所示。
问题分析
尝试进行图片加载的优化工作。
经过与Ionic群内卖火柴朋友的聊天,获取到如下内容:手机端访问速度受服务端带宽的限制。一个接收一个传输,和两方都有关系。服务器对app影响是很大的。2M 一般是网站使用还可以 app会不乐观。增加服务器带宽比在客户端做工作要好很多,还有就是服务图片优化。缓存机制只是下载后的事情,再说ionic的拉数据加上缓存有bug。只能是轮番 和一些固定图片可以使用。因此考虑使用缓存机制的策略暂时告吹。
问题解决
提升服务端带宽。2M-->?M
在这里只是提供一个解决问题的思路,若大家有什么好的建议或想法可以给我留下你宝贵的评论,谢谢。
美文美图
-
[开发技巧]·PyTorch如何使用GPU加速(CPU与GPU数据的相互转换)
2019-04-19 16:12:13[开发技巧]·PyTorch如何使用GPU加速(CPU与GPU数据的相互转换) 配合本文推荐阅读:PyTorch中Numpy,Tensor与Variable深入理解与转换技巧 关联阅读: [深度应用]·主流深度学习硬件速度对比(CPU,GPU,TPU) ...[开发技巧]·PyTorch如何使用GPU加速(CPU与GPU数据的相互转换)
配合本文推荐阅读:PyTorch中Numpy,Tensor与Variable深入理解与转换技巧
关联阅读:
1.问题描述
在进行深度学习开发时,GPU加速可以提升我们开发的效率,速度的对比可以参照笔者这篇博文:[深度应用]·主流深度学习硬件速度对比(CPU,GPU,TPU)结论:通过对比看出相较于普通比较笔记本的(i5 8250u)CPU,一个入门级显卡(GPU MX150)可以提升8倍左右的速度,而高性能的显卡(GPU GTX1080ti)可以提升80倍的速度,如果采用多个GPU将会获得更快速度,所以经常用于训练的话还是建议使用GPU。
在PyTorch中使用GPU和TensorFlow中不同,在TensorFlow如果不对设备进行指定时,TensorFlow检测到GPU就会把自动将数据与运算转移到GPU中。而PyTorch类似于MxNet,需要显性的指定数据和运算放在哪里执行,这样的操作比较自由,却也有些繁琐。因为如果哪一步忘记转换了就会运行出错。
本文在数据存储的层面上,帮大家解析一下CPU与GPU数据的相互转换。让大家可以掌握PyTorch使用GPU加速的技巧。
2.原理讲解
使用GPU之前我需要安装PyTorch的GPU版本,建议使用conda安装,官方教程地址
conda install pytorch torchvision cudatoolkit=9.0 -c pytorch
检测是否可以使用GPU,使用一个全局变量use_gpu,便于后面操作使用
use_gpu = torch.cuda.is_available()
可以使用GPU,use_gpu的值为True,否则为False。当可以使用GPU,我们不想使用,可以直接赋值use_gpu = False
我们在进行转换时,需要把数据,网络,与损失函数转换到GPU上
1.构建网络时,把网络,与损失函数转换到GPU上
model = get_model() loss_f = t.nn.CrossEntropyLoss() if(use_gpu): model = model.cuda() loss_f = loss_f.cuda()
2.训练网络时,把数据转换到GPU上
if (use_gpu): x,y = x.cuda(),y.cuda()
3.取出数据是,需要从GPU准换到CPU上进行操作
if(use_gpu): loss = loss.cpu() acc = acc.cpu()
进一步的对数据操作可以查看笔者这篇博文:[开发技巧]·PyTorch中Numpy,Tensor与Variable深入理解与转换技巧
欢迎大家关注小宋公众号《极简AI》带你学深度学习:这里收集了一些比较适合入门实战的PDF书籍,覆盖TensorFlow、PyTorch与MXNet。推荐的理由是通俗易懂,适合初学者研究学习。书籍列表如下:《简单粗暴TensorFlow2最新中文版》《动手学深度学习PyTorch最新中文版》《动手学深度学习MXNet最新中文版》
关注后,回复:书籍,领取。基于深度学习的理论学习与应用开发技术分享,笔者会经常分享深度学习干货内容,大家在学习或者应用深度学习时,遇到什么问题也可以与我在上面交流知无不答。
出自CSDN博客专家&知乎深度学习专栏作家--小宋是呢
-
moodle开发技巧
2018-07-16 14:41:29moodle开发技巧一.更换主题:1.将下载.zip主题文件解压,并负责到moodle根目录的theme文件夹下。2.进入moodle网站,登录管理员账号,更新安装主题插件,并选用新的插件即可。...moodle开发技巧
一.更换主题:
1.将下载.zip主题文件解压,并负责到moodle根目录的theme文件夹下。
2.进入moodle网站,登录管理员账号,在外观---主题风格中更新安装主题插件,并选用新的插件即可。
-
项目开发技巧之交涉技巧
2015-12-14 18:09:12自己总结的一些项目开发技巧 交涉技巧 -
Oracle数据库开发技巧与经典案例讲解一
2017-12-30 12:16:14Oracle数据库开发技巧经典案例讲解为Oracle数据库开发配套课程, 本课程以讲解真实开发案例的方式,来巩固、强化Oracle数据库开发知识点和技术技巧, 通过经典案例来总结开发中常见的错误,从而能够让学员积累开发... -
AngularJS进阶(三十一)AngularJS项目开发技巧之获取模态对话框中的组件ID
2016-01-20 16:59:07AngularJS项目开发技巧之获取模态对话框中的组件ID 需求 出于项目开发需求,需要实现的业务逻辑是:药店端点击查看“已发货”“已收货”订单详情时,模块弹出框中只应出现“取消”按钮。但现实的情况如下图所示。 ... -
[开发技巧]·TensorFlow&Keras GPU使用技巧
2019-05-17 10:49:12[开发技巧]·TensorFlow&Keras GPU使用技巧 1.问题描述 使用TensorFlow&Keras通过GPU进行加速训练时,有时在训练一个任务的时候需要去测试结果,或者是需要并行训练数据的时候就会显示OOM显存容量不足的... -
iOS 开发技巧 - Code Snippets
2017-07-14 13:15:00以下内容适用于旧版 Xcode(11以下),新版 Xcode 请参考最新内容:iOS 开发技巧 - 标注和 Code Snippets 。 引言 作为一只每天畅游在代码里而快(ku)乐(bi)的攻城狮,在一遍又一遍敲着重复的代码时候会不会觉得... -
AngularJS进阶(三十六)AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记)
2016-02-29 17:15:51AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记) 前言 在“AngularJS项目开发技巧之图片预加载”一文中,自己曾经天真的认为提升服务端带宽就可以解决图片加载问题。但自己的想法错了... -
Spring开发技巧收集
2018-08-14 14:23:30Spring开发技巧 记录了该学习中遇到源码中不错的工具类。之前可能自己都没有见到过的;这里介绍的只是用到过的功能,没有用的功能不会写出来 org.springframework.social.connect.web.SessionStrategy session... -
C# 开发技巧
2010-06-14 11:01:00C# FORM开发技巧 -
零缺陷开发技巧
2014-12-24 10:05:27零缺陷开发技巧,简单易懂,一学即会,一用就有效果,让你写10K代码只有1个bug的方法个人实践效果:10K代码1个bug, 个人负责的70%的版本0 bug详细请点击下载:零缺陷”开发技巧内容简介:1个原则:2/8原则2个技巧:... -
[开发技巧]·PyTorch中Numpy,Tensor与Variable深入理解与转换技巧
2019-04-19 15:31:16[开发技巧]·PyTorch中Numpy,Tensor与Variable深入理解与转换技巧 配合本文推荐阅读:PyTorch如何使用GPU加速(CPU与GPU数据的相互转换) 1.问题描述 我们使用Numpy也是可以手动去编写神经网络进行反向传播... -
安卓开发19:常用安卓开发技巧汇总
2013-07-10 15:27:33常用安卓开发技巧汇总 经常用的一些小技巧都会记录在这边 API权限错误提示解决方法: 报这么一个错误: Call requires API level 11 (current min is 8): android.animation.ObjectAnimator#ofFloat 主要原因是... -
Arduino ESP8266/ESP32常见开发技巧,解决小白疑惑点
2020-03-24 11:31:32Arduino ESP8266/ESP32常见开发技巧,解决小白疑惑点 -
NC中webservice接口的开发技巧
2019-03-19 15:13:09NC中webservice接口的开发技巧 文章目录NC中webservice接口的开发技巧1. 接口发布的问题2.接口发布报错(An internal error occurred during: "执行") 1. 接口发布的问题 想要发布webservice接口,首先在eclipse中需要... -
微信开发开发技巧汇总(学习柳峰老师微信开发笔记)
2015-05-16 15:48:15请求和处理过程实现后,对柳峰老师博客的学习也进入了下一个阶段(开发技巧的学习)。 我在这里,对遇到的技巧进行汇总。 1.如何实现换行 我们在长度可变的StringBuffer中添加内容的同时,加入换行符“\n”,即可... -
MySQL开发技巧学习笔记一
2016-12-19 22:34:41本文内容来自MySQL开发技巧(一)MySQL开发技巧学习笔记一正确谁用SQL: 增加数据库处理效率,减少应用响应时间 减少数据库服务器负载,增加服务器稳定性 减少服务器间通讯的网络流量 如何正确使用Join语句SQL标准中... -
.NET开发技巧之工具篇
2017-02-10 22:00:43本课程已在github上开源:https://github.com/zouyujie/mianshi 介绍.NET码农必须掌握的开发工具,从而提升开发效率 -
Android开发技巧——大图裁剪
2016-03-17 12:07:39本篇内容是接上篇《Android开发技巧——定制仿微信图片裁剪控件》 的,先简单介绍对上篇所封装的裁剪控件的使用,再详细说明如何使用它进行大图裁剪,包括对旋转图片的裁剪。裁剪控件的简单使用XML代码使用如普通... -
前端开发技巧
2019-04-15 20:17:20查看源码 在浏览器界面,按下F12或者鼠标右击,在出现的选项中点击检查,即可查看... ... 编写样式 浏览器中还有一个功能,就是可以直接在浏览器中编写标签的样式,效果直接就可以看到 ...截图框的位置即可编写样式 ...... -
Android开发技巧——自定义控件之使用style
2015-11-25 15:05:17Android开发技巧——自定义控件之使用style回顾在上一篇《Android开发技巧——自定义控件之自定义属性》中,我讲到了如何定义属性以及在自定义控件中获取这些属性的值,也提到了关于这些属性除了可以在布局文件中... -
iPhone开发技巧笔记壹
2010-11-16 18:05:00iPhone开发技巧笔记壹 -
[开发技巧]·AdaptivePooling与Max/AvgPooling相互转换
2019-04-22 16:17:52[开发技巧]·AdaptivePooling与Max/AvgPooling相互转换 个人网站-->http://www.yansongsong.cn 1.问题描述 自适应池化Adaptive Pooling是PyTorch的一种池化层,根据1D,2D,3D以及Max与Avg可分为六种形式。 ... -
Android开发技巧——高亮的用户操作指南
2015-12-10 12:42:04Android开发技巧——高亮的用户操作指南一不小心成了博客之星的候选人,还有许多朋友帮我投票,无以回报,只能再写一篇以表答谢各位的支持。前面四篇写了关于自定义控件的一些基础知识。在我的理解中,其实做Android... -
golang开发技巧
2019-01-17 15:11:50使用gofmt 重要的话说3遍 使用gofmt 使用gofmt 使用gofmt gofmt是golang提供的代码格式化工具,整个团队使用,就不需要做代码风格审查了 协程使用规范 将并发留给调用者 // ListDirectory returns the contents of ... -
【开发技巧】解决微信author2.0回调内网本地问题
2017-06-02 18:18:04【开发技巧】解决微信author2.0回调内网本地问题 -
Struts开发技巧
2004-08-07 18:56:00Struts开发技巧 在经历了《中国电信大客户贴心服务》项目的开发以及目前正在开发中的《中国电信经营分析》项目,已累计了一些对于Struts1.1和Tiles开发的一些技术和技巧,特写出来,方便以后的开发,同时也... -
iOS开发技巧之Xcode报错信息无法复制
2016-09-05 12:36:48iOS开发技巧之Xcode报错信息无法复制
-
四川大学微机原理历年试卷真题.pdf
-
数据类型转换、运算符、方法入门
-
Python语言编程高级精讲课 从程序员到架构师的必修课
-
UnitySocket异步聊天室
-
三维地图GIS大数据可视化
-
小丑竟是我自己
-
大学 毕业设计 项目实训 java struts2购物网站 源代码.zip
-
makefile 使用指南
-
统信UOS操作系统最新版安装步骤.md
-
并查集
-
jdk_8u73_windows_i586_8.0.730.2.zip
-
自绘窗体 仿windows计算器calc 源代码
-
西安交通大学《计算机原理》题库.pdf
-
Laya 2.0 开发3D小游戏 入门教学
-
天津大学人工智能2009期末真题卷.pdf
-
液压系统建模与仿真三级项目.zip
-
Unity Ragdoll 实现死亡效果 心得+坑点总结
-
electron-quick-start-linux-mips64el.tar.gz
-
pyechart数据可视化
-
多线程与线程池技术详解(图书配套)