bar

理解浏览器历史记录(2)-hashchange、pushState

爷,独闯天下 提交于 2020-04-08 12:10:24
History(Window.history对象)对象保存着用户上网的历史记录。处于 安全方面的考虑 ,开发人员无法得知用户浏览过的URL,但是借由用户访问过的页面列表,同样可以在不知道实际URL的情况下实现后退和前进。 History对象概况: ------------------------------------------------------------------------------------------------------------------------------------------------------- Manipulating the browser history Manipulating the browser history The DOM window object provides access to the browser's history through the history object. It exposes useful methods and properties(方法和属性) that let you move back and forth through the user's history, as well as -- starting with HTML5 -- manipulate the

apply-call-bind

怎甘沉沦 提交于 2020-04-07 21:48:54
call: var foo ={ value:1 } function bar(name,age) { console.log(this.value); console.log(name); console.log(age); } //bar.call(foo,'gongtao',11); Function.prototype.call2 = function (context) { var args = []; for (var i = 1, len = arguments.length; i < len; i++) { args.push(arguments[i]); } context.fn = this; context.fn(...args); delete context.fn; } bar.call2(foo,'gongtao',111); apply: var foo = { value: 1 } function bar(name, age) { console.log(this.value); console.log(name); console.log(age); } //bar.apply(foo); Function.prototype.apply2 = function (context, arr) { var context = context ||

谈谈神秘的ES6——(五)解构赋值【对象篇】

China☆狼群 提交于 2020-04-07 11:29:26
上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" }; foo // "aaa" bar // "bbb" 对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。 let { bar, foo } = { foo: "aaa", bar: "bbb" }; foo // "aaa" bar // "bbb" let { baz } = { foo: "aaa", bar: "bbb" }; baz // undefined 上面代码的第一个例子,等号左边的两个变量的次序,与等号右边两个同名属性的次序不一致,但是对取值完全没有影响。第二个例子的变量没有对应的同名属性,导致取不到值,最后等于undefined。 如果变量名与属性名不一致,必须写成下面这样。 let { foo: baz } = { foo: 'aaa', bar: 'bbb' }; baz // "aaa" let obj = { first: 'hello', last: 'world' }; let { first: f, last: l } = obj; f

Spring中事务内部调用引发的惨案

故事扮演 提交于 2020-04-07 05:58:32
在一个类内部有2个方法foo和bar,其中bar方法配有注解(@Transactional),即bar是事务执行的,而foo不是事务执行,当foo方法内部调用bar方法后,bar方法的事务是不生效的。示例代码如下: public class ServiceTest { public void foo(){ this.bar();//调用自身的方法; } @Transactional public void bar(){ System.out.println("this is bar"); //数据库操作 } } 原因如下: Spring中通过注解来完成事务的功能,实际是通过SpringAOP来实现的,而SpringAOP中,使用this来调用自身的方法时 ,此对象引用上的方法 直接会 被调用,不会调用代理的方法(SpringAOP原理是产生代理类)。因此bar方法的事务不会生效。如果直接调用bar方法,此时事务是生效的。 解决方法有: 一、将bar方法放在另一个service类中。这种方法简单,但是造成代码的冗余。 二、可以将注解@Transactional放在foo方法上。这种方法造成的影响:加入foo方法的一些操作是不需要事务的,这会延长事务执行的时间。 三、在foo方法中不要直接使用this来调用bar方法,通过调用代理类的bar方法。 public void foo(){

笔记:pyecharts可视化

爷,独闯天下 提交于 2020-04-05 19:51:23
# 加载数据 import pandas as pd df = pd.read_excel(r"D:\我的文档\数据源\采购商品出库综合查询 - Python.xlsx",header = 2) df # 计算出结果 df1 = df.groupby(["部门"])["总销售额"].sum() df1 # 输出数据到excel表中 df1.to_excel(excel_writer = r"C:\Users\滕玉龙\Desktop\汇总.xls") 打开刚才生产的Excel表,将“总销售额”那列的数据复制粘贴为文本型数值到word文档中,并且如图操作,全部替换: 接着把得到的数值复制粘贴到以下代码对应的位置中: from pyecharts.charts import Bar bar = Bar() bar.add_xaxis(["水产","水果","猪肉","综合","蔬菜"]) bar.add_yaxis("总销售额",[42141784.18,36190264.86,154450463.8,156259246.6,107234970.6]) # render 会生成本地 html 文件,默认会在当前目录生成 render .html 文件 # 也可以传入路径参数,如bar.render("mycharts.html") bar.render() # render

How To Draw Graphs with Core Plot, Part 2

随声附和 提交于 2020-04-03 05:28:25
This is a blog post by iOS Tutorial Team member Steve Baranski , the founder of komorka technology , a provider of iOS development and consulting services. Welcome to the second part of the Core Plot tutorial series! In the first part of this series , you created a tab bar controller application that provided tabs for three separate charts/graphs. You added the Core Plot framework to the project and explored some of the key framework components as you built a dynamically-themed pie chart. We’re going to start where we left off last time, so download the project from last time if you don’t have

How To Draw Graphs with Core Plot, Part 2

不想你离开。 提交于 2020-04-03 05:27:51
From: http://www.raywenderlich.com/13271/how-to-draw-graphs-with-core-plot-part-2 This is a blog post by iOS Tutorial Team member Steve Baranski , the founder of komorka technology , a provider of iOS development and consulting services. Welcome to the second part of the Core Plot tutorial series! In the first part of this series , you created a tab bar controller application that provided tabs for three separate charts/graphs. You added the Core Plot framework to the project and explored some of the key framework components as you built a dynamically-themed pie chart. We’re going to start

[iOS]关于状态栏(UIStatusBar)的若干问题

一曲冷凌霜 提交于 2020-04-01 07:00:12
版本: OS X 10.10.5 Xcode 6.4(6E35b) iOS >= 7 一、概述 状态栏(UIStatusBar)指iPhone/iPad/iPod屏幕顶部用于显示网络、时间和电量等的、高度为20点的控件。状态栏的windowLevel为UIWindowLevelStatusBar,而window的windowLevel为UIWindowLevelNormal。所以一般情况下,状态栏位于window之上。 二、UIStatusBar的位置和尺寸 1 NSString *statusBarFrame = NSStringFromCGRect([UIApplication sharedApplication].statusBarFrame); 2 NSLog(@"%@", statusBarFrame); 在iPhone 6竖屏测试输出: 2015-08-04 16:33:47.159 Test[6175:205261] {{0, 0}, {375, 20}} 在iPhone 6横屏测试输出: 2015-08-04 16:33:47.159 Test[6175:205261] {{0, 0}, {667, 20}} 在iPhone 6 Plus竖屏测试输出: 2015-08-04 16:33:47.159 Test[6175:205261] {{0, 0}, {414,

使用 typeof bar === \"object\" 来确定 bar 是否是对象的潜在陷阱是什么?

依然范特西╮ 提交于 2020-03-27 01:06:03
使用typeof首先要明白 typeof 可以检测什么。 typeof 主要用于检测基本数据类型。typeof尽量不要用来检测复杂数据类型。 typeof 检测null 和 数组 的时候 结果也是objcet。所以 使用 typeof bar === "object" 来确定 bar 是否是对象是不准确的。 除非这样使用 (bar !== null) && (typeof bar === "object") && (toString.call(bar) !== "[object Array]") 因为 isNaN()函数调用返回的结果是boolean值所以 是boolean类型。 尽管 typeof bar === "object" 是检查 bar 是否对象的可靠方法,令人惊讶的是在JavaScript中 null 也被认为是对象! 因此,令大多数开发人员惊讶的是,下面的代码将输出 true (而不是false) 到控制台: var bar = null;console.log(typeof bar === "object"); // logs true! 只要清楚这一点,同时检查 bar 是否为 null,就可以很容易地避免问题: console.log((bar !== null) && (typeof bar === "object")); // logs false

edgesForExtendedLayout iOS7新特性

喜欢而已 提交于 2020-03-25 19:35:49
3 月,跳不动了?>>> edgesForExtendedLayout是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向。 因为iOS7鼓励全屏布局,它的默认值很自然地是UIRectEdgeAll,四周边缘均延伸,就是说,如果即使视图中上有navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域。 self.edgesForExtendedLayout = UIRectEdgeNone; 来解决UINavigationBar透明的问题。设置了UIRectEdgeNone之后,你嵌在UIViewController里面的UITableView和UIScrollView就不会穿过UINavigationBar了,同时UIView的控件也回复到了iOS6时代。 不过这个对于Status Bar在iOS7上面的变化是无效的,正确的说应该是部分无效。在存在Navigation部分或者Tabbar部分的时候,上面的代码可以使得Status Bar也不载透明(有待验证,毕竟UIViewController的可用空间被控制了),但是在没有这两个部分的时候,Status Bar依旧是会记入UIView范围的。 - (void)viewDidLoad { [super viewDidLoad]; if ([self respondsToSelector: