callback

Django进阶之缓存和信号

≡放荡痞女 提交于 2020-03-18 06:51:27
简介 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存或者Redis中之前缓存的内容拿到,并返回。 Django提供了6种缓存方式: 1、 开发调试 2、 内存 3、 文件 4、 数据库 5、 Memcache缓存(python-memcached模块) 6、 Memcache缓存(pylibmc模块) 通用配置 'TIMEOUT': 300, # 缓存超时时间(默认300,None表示永不过期,0表示立即过期) 'OPTIONS':{ 'MAX_ENTRIES': 300, # 最大缓存个数(默认300) 'CULL_FREQUENCY': 3, # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3) }, 'KEY_PREFIX': '', # 缓存key的前缀(默认空) 'VERSION': 1, # 缓存key的版本(默认1) 'KEY_FUNCTION' 函数名 # 生成key的函数(默认函数会生成为:【前缀:版本:key】) 这部分是通用的配置,在上面6种方法中都可以使用 开发调试 # 此为开始调试用

Ajax跨域请求怎么解决?

心已入冬 提交于 2020-03-17 17:12:40
前言    项目中需要将第三方系统中,对应用户的代办消息集成到系统中。对方提供了获取对应用户的接口url,但是由于两边的系统是部署到客户现场不同IP的虚机上的,所以进行ajax请求的时候是属于跨域请求的。之前基本没有出现过这种情况,但是知道有跨域这个点,具体怎么解决,只知道ajax 有datatype:'jsonp' 是解决跨域请求的。但是当时并没有解决问题,因为后台数据接口并没有提供jsonp格式的函数方法,而只是json。用ajax解析json 的那一套去解析jsonp,当然行不通了。 跨域请求的迹象?    No 'Access-Control-Allow-Origin' header is present on the requested resource.   此时就是在提示你 存在跨域请求,我也是在这个时候发现 了进行了跨域请求。然后,我在ajax中添加了 datatype:'jsonp' (不了解的童鞋请查看jquery官方文档中的$.ajax部分)进行跨域请求。但是,添加以后,居然还是提示错误: Uncaught SyntaxError: Unexpected token : (出现这个问题的原因就是 使用ajax 解析json 的方式直接去解析了jsonp格式,钥匙对不上锁...) 这个时候,就由于对跨域请求不是有很多了解,导致我知道出现了什么问题

after_initialize & after_find callbacks order in Active Record object life cycle?

蹲街弑〆低调 提交于 2020-03-17 05:20:27
问题 From the Rails Guides. Callbacks could hook into Active Record Object's life cycle. In the order of execution, they're (copied from Rails Guides): Creating an Object before_validation after_validation before_save around_save before_create around_create after_create after_save after_commit/after_rollback Updating an Object before_validation after_validation before_save around_save before_update around_update after_update after_save after_commit/after_rollback Destroying an Object before

[译]幕后的gulp:构建一个基于流的任务自动化工具

穿精又带淫゛_ 提交于 2020-03-16 17:33:36
某厂面试归来,发现自己落伍了!>>> 幕后的gulp:构建一个基于流的任务自动化工具 /** * 谨献给Yoyo * * 原文出处:https://www.toptal.com/nodejs/gulp-under-the-hood * @author dogstar.huang <chanzonghuang@gmail.com> 2016-05-14 */ 前端开发人员现在正在使用多种工具把日常操作自动化。三个最流行的解决方案是Grunt,Gulp和Webpack。每个工具都建立在不同的理念,但是它们共享同一个目标:精简前端构建过程。例如,Grunt是配置驱动的,而Gulp几乎不需要配置即可执行。事实上,Gulp依赖于开发人员编写代码来实现构建流程 - 各种构建任务。 当谈到选择这些工具之一时,我个人最喜欢的是Gulp。总而言之,这是一个简单,快速和可靠的解决方案。在这篇文章中,我们将看到幕后的Gulp是如何工作,通过花点心思在实现我们自己的像Gulp这样的工具。 Gulp API 接口 Gulp自带的只有 四个简单的功能 : gulp.task gulp.src gulp.dest gulp.watch 这四个简单的功能,通过各种组合提供了Glup全部的强悍和灵活性。在4.0版本中,Gulp引入了两个新的功能:gulp.series和gulp.parallel

gulp中如何保证任务执行顺序。

六月ゝ 毕业季﹏ 提交于 2020-03-16 15:16:25
某厂面试归来,发现自己落伍了!>>> 举一个简单了例子: gulp.task('task2',function(){ setTimeout(function(){ console.log("task2 has been completed") },3000) }) gulp.task('task1',['task2'],function(){ console.log("task1 has been completed") }) 在命令行中执行gulp task1 通过命令行的任务流程,我们可以看出,任务并没有像我们想象的那样运行。这是因为在gulp中,所有task都是异步执行的,那么此时我们需要引入q模块来帮助我们解决这个问题。 通过命令行输入gulp install q --save-dev来安装q模块 var Q = require('q'); var Q = require('q'); gulp.task('task2',function(){ var deferred = Q.defer(); setTimeout(function(){ console.log("task2 has been completed") deferred.resolve(); },3000) return deferred.promise; }) gulp.task('task1',[

jQuery之动画效果

浪子不回头ぞ 提交于 2020-03-15 20:26:52
jQuery之动画效果 1、show()显示效果   语法:show(speed,callback)  Number/String,Function speend为动画执行时间,单位为毫秒。也可以为slow","normal","fast" callback可选,为当动画完成时执行的函数。      show(speed,[easing],callback)  Number/String  easing默认是swing,可选linear;      $("#div1").show(3000,function(){ alert("动画显示完成!"); });        2、hide()隐藏效果   语法:hide(speed,callback)  Number/String,Function      hide(speed,easing,callback)  Number/String      $("#div1").hide(3000,function(){ alert("动画隐藏完成") }); 3、toggle()隐藏显示自动切换,当目前为显示则隐藏,当目前为隐藏则显示   语法:toggle(speed,callback)  Number/String,Function      toggle(speed,callback)  Number/String,String

How to pass a method as callback

夙愿已清 提交于 2020-03-15 05:51:02
问题 In Python or C++, a class say A can delegate some work to another instance of class Say B, and set a callback method of A in B. I try to do this in Rust, but so far I got nowhere, beaten by Rust compiler. Here is Code I have tried, remaining code is at the end of this post. In A::test I tried using closure to get a Fn() trait object as callback. // let b = B::new(self.finish)); // ideally but would not compile // let test :Box<Fn(String)> = Box::new(move |msg| {self.finish(msg);}); // cannot

How to pass a method as callback

痞子三分冷 提交于 2020-03-15 05:47:15
问题 In Python or C++, a class say A can delegate some work to another instance of class Say B, and set a callback method of A in B. I try to do this in Rust, but so far I got nowhere, beaten by Rust compiler. Here is Code I have tried, remaining code is at the end of this post. In A::test I tried using closure to get a Fn() trait object as callback. // let b = B::new(self.finish)); // ideally but would not compile // let test :Box<Fn(String)> = Box::new(move |msg| {self.finish(msg);}); // cannot

jsonp的跨域原理

倾然丶 夕夏残阳落幕 提交于 2020-03-14 11:46:45
在开发测试中,难免会在不同域下进行跨域操作,出于安全性考虑,浏览器中的同源策略阻止从一个域上加载的脚本获取或者操作 另一个域下的文档属性,这时需要进行跨域的方式进行解决,如:使用jsonp ,iframe等 1.jsonp的原理 jsonp,即json+padding,动态创建script标签,利用script标签的src属性可以获取任何域下的js脚本,通过这个特性(也可以说漏洞),服务器端不在返回json格式,而是返回一段调用某个函数的js代码,在src中进行了调用,这样实现了跨域. <!DOCTYPE html> <html> <head> <title>GoJSONP</title> </head> <body> <script type="text/javascript"> function jsonhandle(data){ alert("age:" + data.age + "name:" + data.name); } </script> <script type="text/javascript" src="jquery-1.8.3.min.js"> </script> <script type="text/javascript" src="http://www.practice-zhao.com/remote.js"></script> </body> <

观察者模式(1)

时光怂恿深爱的人放手 提交于 2020-03-13 12:39:09
  (1)笔试中有一个自定义事件的题,这个题其实考的就是观察者模式。   (2)Js中实现双向数据绑定也可以用观察者模式。所谓双向数据绑定指的是:数据的操作可以实时反映到数据,数据的变更也可以实时的展现在页面。(如AngularJs)   观察者模式是一种设计模式,又叫发布订阅模式(Publish/Subscribe)。它定义了对象间一对多的关系,让多个观察者对象同时监听某个主体对象,当这个对象的状态发生变化时,所有监听这个对象的观察者都会收到一个通知,从而自动更新自己的状态。 例子:   假如我们正在开发一个商城网站,网站里有header头部、nav导航、消息列表、购物车等模块。这几个模块的渲染有一个共同的前提条件,就是必须先用ajax异步请求获取用户的登录信息。这是很正常的,比如用户的名字和头像要显示在header模块里,而这两个字段都来自用户登录后返回的信息。这个时候,我们就可以把这几个模块的渲染事件都放到一个数组里面,然后待登录成功之后再遍历这个数组并且调用每一个方法。   一个PubSub模型主要有三个方法:订阅(subscribe),退订(unsubscribe),发布(publish)。   我们先来实现一个简单的PubSub模块。 var PubSub={}; //用于存储事件队列,事件管理器 var quene={}; //其中event为事件名称