callback

今天写的 Javascript 异步分页组件

拜拜、爱过 提交于 2020-04-06 18:13:28
分页的效果如下: 使用方法: 1、页面上要引用 <script src="Page.js" type="text/javascript"></script> 2、页面放放上一个 一个放 分页组件的 元素 如:DIV,放一个异步请求回 放入要显示 数据 的元素 如 : DIV     <div id="Result">          -----这是要显示数据的地方     </div>      <div id="pager">       ----这里是分页组件要显示的地方     </div> 3、分页的一些初始 设置       //这个是 当用户点 “上一页” “下一页” “首页” “跳转” 时要调用的 函数 注意:要放在 SetPage 的前面,       // 里面的 参数 是当前的页码 必须要有的      PageClick = function (currentPageIndex) {          --- 这里是你要异步请求的数据            --- 请求回来已后 直接放到 要显示的地方 如:上面设置 的 ID 为 Result 的DIV        }       // 这个函数主要是对分页做一些初始化,       //第一个参数是 当前是第几页       //第二个 参数是 总共多少页       //第三个 参数是 分页组件

php创建多个请求实现多进程

我的未来我决定 提交于 2020-04-05 15:06:48
1:引入第三方类库 vendor下: <?php namespace Curlroll; class CurlRoll { /** * @var int * 并发请求数,设置此值过大,同一时间内如果请求远端主机会很容易被判定为DDos攻击 */ private $window_size = 5; /** * @var float * curl_multi_select 处理超时时间. */ private $timeout = 10; /** * @var array * 请求对象 CurlRequest 实例数组 */ private $requests = array(); /** * @var array * 并发请求map */ private $requestMap = array(); /** * @var string|array * callback function,结果处理回调函数. */ private $callback; /** * @var array * HTTP request default options. */ private $options = array( CURLOPT_SSL_VERIFYPEER => 0, //不开启https请求 CURLOPT_RETURNTRANSFER => 1, //请求信息以文件流方式返回

部署Rabbitmq

爷,独闯天下 提交于 2020-04-01 14:07:21
一、Rabbitmq概念 RabbitMQ是一个开源的靠AMQP协议实现的服务,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 它可以使对应的客户端(client)与对应的消息中间件(broker)进行交互。消息中间件发布者(publisher)那里收到消息(发布消息的应用,也称为producer),然后将他们转发给消费者(consumers,处理消息的应用)。由于AMQP是一个网络协议,所以发布者、消费者以及消息中间件可以部署到不同的物理机器上。 Rabbitmq使用场景: 消息队列在实际应用中常用在异步处理、应用解耦、流量削锋和消息通讯这四个场景。 二、部署Rabbitmq 注:在开始之前,主机名最好为默认的localhosts(如果不是,会在启动rabbitmq时报错,解决方法:重启主机,再启动rabbitmq) 下载 rpm包 (提取码

Android学习记录:线程

北慕城南 提交于 2020-03-31 02:16:20
在Java中,线程的建立方法如下。 新建一个类,接口Runnable,重载 run方法 import javax.swing.JTextField; public class test implements Runnable{ @Override public void run() { } } 在需要开始这个线程的地方,这样创建线程 private Thread th; test te = new test(); th = new Thread(te); th.start(); Java中调用线程的时候,可以直接访问JFrame上的组件,并更改其值,但是在安卓中,如果一个子线程涉及到UI更新,Android主线的线程是不安全的。更新UI只能在主线程中更新。 所以要把Message通过handler来send,然后利用callback来接收。 新建类,接口Callback 重载的handleMessage中就是对从子线程中传入的Message做处理。 import android.os.Handler.Callback; import android.os.Message; import android.widget.TextView; public class CB implements Callback{ private TextView tv; public TextView

jquery load 事件用法

此生再无相见时 提交于 2020-03-30 15:52:23
如果绑定给window对象,则会在所有内容加载后触发,包括窗口,框架,对象和图像。如果绑定在元素上,则当元素的内容加载完毕后触发。 注意: 只有当在这个元素完全加载完之前绑定load的处理函数,才会在他加载完后触发。如果之后再绑定就永远不会触发了。所以 不要 在$(document).ready()里绑定load事件,因为jQuery会在所有DOM加载完成后再绑定load事件。因此,使用load方法时尽量把load方法写在页面顶部。 调用load方法的完整格式是: load( url, [data], [callback] ), 其中: url :是指要导入文件的地址。 data :可选参数;因为Load不仅仅可以导入静态的html文件,还可以导入动态脚本,例如PHP文件,所以要导入的是动态文件时,我们可以把要传递的参数放在这里。 callback :可选参数;是指调用load方法并得到服务器响应后,再执行的另外一个函数。 一:如何使用data 1.加载一个php文件,该php文件不含传递参数 $("#myID").load("test.php"); //在id为#myID的元素里导入test.php运行后的结果 2. 加载一个php文件,该php文件含有一个传递参数 $("#myID").load("test.php",{"name" : "Adam"}); /

RecyclerView进阶:使用ItemTouchHelper实现拖拽和侧滑删除

时光总嘲笑我的痴心妄想 提交于 2020-03-30 07:35:29
现在RecyclerView的应用越来越广泛了,不同的应用场景需要其作出不同的改变。有时候我们可能需要实现侧滑删除的功能,比如知乎首页的侧滑删除,又或者长按Item进行拖动与其他Item进行位置的交换,但RecyclerView没有提供现成的API供我们操作,所幸SDK提供了ItemTouchHelper这样一个工具类帮助我们快速实现以上功能。不多说别的,我们来介绍一下ItemTouchHelper。 什么是ItemTouchHelper This is a utility class to add swipe to dismiss and drag & drop support to RecyclerView.It works with a RecyclerView and a Callback class, which configures what type of interactions are enabled and also receives events when user performs these actions.Depending on which functionality you support, you should override onMove(RecyclerView, ViewHolder, ViewHolder) and / or

《node.js权威指南》读书笔记

前提是你 提交于 2020-03-30 03:32:21
第一章 node.js介绍 非阻塞型I/O机制 当在访问数据库取得搜索结果的时候,在开始访问数据库之后,数据库返回结果之前,存在一段等待时间。 在传统的单线程处理机制中,在执行了访问数据库的代码之后,整个线程都将暂停下来,等待数据库返回查询结果之后才能继续执行后面的代码。这是I/O型阻塞 node.js中在执行了访问数据库的代码之后将立即执行其后面的代码段,把数据库返回的结果的处理代码放在回调函数中。这是非阻塞型I/O机制 第三章 node.js中的全局作用域及全局函数 timer.unref()用于取消setTimeout或setInterval函数中指定的回调函数的调用 timer.ref()恢复unref方法取消的回调函数 var testFunction = function(){ console.log('aaa') } var timer = setInterval(testFunction,3000) //取消定时器对象的回调函数调用 timer.unref() //没有输出 //恢复定时器对象的回调函数调用 // timer.ref()//有输出 在任何模块文件内部,可以使用 __filename 变量获取当前模块文件名 在任何模块文件内部,可以使用 __dirname 变量获取当前模块文件所在目录的完成绝对路径 EventEmitter类 emitter

Javascript 时间 倒计时

隐身守侯 提交于 2020-03-30 02:08:21
更新一下时间倒计时插件(jQUery) 1 $.fn.genTimer = function (e) { 2 function u(e) { 3 var t = Math.floor(e / n), 4 r = Math.floor((e - t * n) / 36e5), 5 i = Math.floor((e - t * n - r * 1e3 * 60 * 60) / 6e4), 6 s = Math.floor((e - t * n - r * 1e3 * 60 * 60 - i * 1e3 * 60) / 1e3); 7 return { 8 hours: ("0" + r).slice(-2), 9 minutes: ("0" + i).slice(-2), 10 seconds: ("0" + s).slice(-2), 11 dates: t 12 } 13 } 14 if (this.data("handled")) return this; 15 this.data("handled", !0); 16 var t = { 17 beginTime: new Date, 18 day_label: "day", 19 days_label: "days", 20 unitWord: { 21 hours: ":", 22 minutes: ":", 23

Vue | Vue-ls插件

对着背影说爱祢 提交于 2020-03-26 09:59:44
3 月,跳不动了?>>> Vue插件,用于从Vue上下文中使用本地Storage,会话Storage和内存Storage 一个vue封装的本地储存的方法。 安装 Npm npm install vue-ls --save Yarn yarn add vue-ls 使用 Vue-ls Storage API import Storage from 'vue-ls' ; options = { namespace : 'vuejs__' , // key键前缀 name : 'ls' , // 命名Vue变量.[ls]或this.[$ls], storage : 'local' , // 存储名称: session, local, memory } ; Vue . use ( Storage , options ) ; // 或 Vue.use(Storage); new Vue ( { el : '#app' , mounted : function ( ) { Vue . ls . set ( 'foo' , 'boo' ) ; // 设置有效期 Vue . ls . set ( 'foo' , 'boo' , 60 * 60 * 1000 ) ; //有效1小时 Vue . ls . get ( 'foo' ) ; Vue . ls . get ( 'boo' , 10 ) ;

“An illegal choice is detected…” error with dynamic dropdown select list I Drupal8

流过昼夜 提交于 2020-03-25 16:04:59
问题 I wrote this code for dynamic dropdown select list in hook_form_alter. Options are populated by an external DB. function car2db_annuncio_form_alter(&$form, FormStateInterface $form_state, $form_id) { if ($form_id == 'node_annuncio_form') { $options_type = car2db_annuncio_type_dropdown_options(); $form['field_marca']['#prefix'] = '<div id="field_marca">'; $form['field_marca']['#suffix'] = '</div>'; $form['field_tipologia']['widget']['#options'] = $options_type; $form['field_tipologia']['widget