加上版本說明 version="release"
當(dāng)target="miniProgram"時(shí)有效,要打開的小程序版本,有效值
develop(開發(fā)版),trial(體驗(yàn)版),release(正式版),僅在當(dāng)前小程序?yàn)殚_發(fā)版或體驗(yàn)版時(shí)此參數(shù)有效;如果當(dāng)前小程序是正式版,則打開的小程序必定是正式版。
當(dāng)你沒有要跳轉(zhuǎn)的小程序的體驗(yàn)權(quán)限時(shí),開發(fā)版本測試version="trial" 的時(shí)候,會提示你無改小程序體驗(yàn)權(quán)限。
上線使用 version="release" 即可
todo.id有值么?
var todo={};
var $tr=$('<tr></tr>');
$tr.data("_id_",todo.id);
console.log($tr.data("_id_"));//undefined
todo.id="1234567890";
$tr.data("_id_",todo.id);
console.log($tr.data("_id_"));//1234567890給你推薦一個(gè)可以知道答案的地方:https://developer.mozilla.org...
/這個(gè)js文件對scroll()方法進(jìn)行擴(kuò)展,在JQ中scroll()只可以監(jiān)聽滾動的時(shí)候的一個(gè)事件.這個(gè)js文件可以監(jiān)聽scrollStart和scrollStop/
(function(){
var special = jQuery.event.special,
uid1 = 'D' + (+new Date()),
uid2 = 'D' + (+new Date() + 1);
special.scrollstart = {
setup: function() {
var timer,
handler = function(evt) {
var _self = this,
_args = arguments;
if (timer) {
clearTimeout(timer);
} else {
evt.type = 'scrollstart';
jQuery.event.handle.apply(_self, _args);
}
timer = setTimeout( function(){
timer = null;
}, special.scrollstop.latency);
};
jQuery(this).bind('scroll', handler).data(uid1, handler);
},
teardown: function(){
jQuery(this).unbind( 'scroll', jQuery(this).data(uid1) );
}
};
special.scrollstop = {
latency: 300,
setup: function() {
var timer,
handler = function(evt) {
var _self = this,
_args = arguments;
if (timer) {
clearTimeout(timer);
}
timer = setTimeout( function(){
timer = null;
evt.type = 'scrollstop';
jQuery.event.handle.apply(_self, _args);
}, special.scrollstop.latency);
};
jQuery(this).bind('scroll', handler).data(uid2, handler);
},
teardown: function() {
jQuery(this).unbind( 'scroll', jQuery(this).data(uid2) );
}
};
})();
可以將上面代碼保存到一個(gè)文件,這相當(dāng)于一個(gè)插件。
(function(){
jQuery(window).bind('scrollstart', function(){
console.log("start");
});
jQuery(window).bind('scrollstop', function(e){
console.log("end");
});
})();
轉(zhuǎn)載于
作者:毛毛家的大熊
鏈接:https://www.jianshu.com/p/4fa...
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
重點(diǎn)是“跨站” 你先理解這個(gè)是什么意思
PHP程序員做的基本都是互聯(lián)網(wǎng)開發(fā)吧,離不開和前端打交道。需要了解多少,要和你的公司要求你做的事情有關(guān)系,基本上大公司要求做的專一點(diǎn),精通PHP就行。小公司可能要求你懂的面廣一點(diǎn),什么都會。
只要你PHP玩的精通,其實(shí)js的知識哪怕你一點(diǎn)都不了解都沒關(guān)系。但是HTTP方面相關(guān)知識還是要了解的,比如HTTP1.0 1.1 2.0之前有什么區(qū)別和特征,http code有哪些和意義。怎么配置跨域,這些。
如果非要了解一些,從原理和框架入手去了解js,不需要你會寫多少,但是要只要常見的前端框架有哪些比如vue, react angular,這些框架面向的前后端分離,后端的php只需要關(guān)注接口的提供,不需要提供頁面渲染。
如果是普通的網(wǎng)站,那你要懂一些瀏覽器的渲染知識。然后用php的方式,后端生成頁面html,然后吐給前端渲染。
因?yàn)樗陌皇悄銓懙哪莻€(gè)
直接用df[df<=200]=0;df[df>200]=1就好了
標(biāo)簽啊
<text>{{message}}</text>
page({
data...
message:0 //分?jǐn)?shù)
...
//方法調(diào)用
changeMessage: funtion (){
this.setData({
message:100
})
}
})在 2 倍屏下 1px 渲染為 2 物理像素,3 倍屏下 1px 渲染為 3 物理像素,可以了解下 px 與 dpi 的關(guān)系~
在 2 倍屏下,將 1px border transform: scale(0.5)
在 3 倍屏下,將 1px border transform: scale(0.3333)
要是沒有現(xiàn)成的工具可以用,你可以自己寫一個(gè)。
以 python 為例
# -*- coding: utf-8 -*-
from subprocess import check_output
import psutil
def main_process_id(service):
""" 返回服務(wù)的主進(jìn)程 PID """
cmd = 'systemctl show %s --property=MainPID' % service
output = check_output(cmd, shell=1)
return int(output.split('\n')[0].split('=')[1])
def show_child_process(ppid):
""" 打印子進(jìn)程 """
for child in psutil.Process(ppid).children():
print('pid=%d, %s' % (child.pid, child.cmdline()))
if __name__ == '__main__':
show_child_process(main_process_id('mqtt'))
參閱
后臺是form表單接收數(shù)據(jù)嗎,應(yīng)為你用get請求的時(shí)候是url傳輸,后臺接收到的數(shù)據(jù)格式是類似'id=1&from=home'這樣的格式,但是你用post傳輸?shù)脑挃?shù)據(jù)格式是鍵值對:{ id: 1, from: "home" },后臺接收不到吧。
如果后臺數(shù)form表單接收的話,在axios攔截器里面使用'qs'模塊`import axios from 'axios';
import { getToken } from './auth'
// import 'url-search-params-polyfill'
import qs from 'qs'
axios.defaults.timeout = 5000
axios.defaults.baseURL = process.env.BASE_API
//http request 攔截器
axios.interceptors.request.use(
config => {
const token = getToken() // 注意使用的時(shí)候需要引入cookie方法,推薦js-cookie
// config.data = new URLSearchParams(config.data) // 把{ id: 1, from: "home" }格式的參數(shù)轉(zhuǎn)換成'id=1&from=home'格式的參數(shù)傳給后臺,坑我好久,后臺一直接受不到參數(shù)就是這個(gè)原因
config.data = qs.stringify(config.data)
console.log('奇怪')
config.headers = {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
'client_type': '20',
'api_version': '1.0.0000',
'token': token || ''
}
return config;
},
error => {
return Promise.reject(err);
}
);`
在SpringMVC中文件上傳需要用到的jar包
配置文件上傳解析器
<!-- 文件上傳 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 設(shè)置上傳文件的最大尺寸為5MB -->
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>
測試的JSP
<%--
Created by IntelliJ IDEA.
User: ozc
Date: 2017/8/11
Time: 9:56
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>測試文件上傳</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/upload.action" method="post" enctype="multipart/form-data" >
<input type="file" name="picture">
<input type="submit" value="submit">
</form>
</body>
</html>
值得注意的是,在JSP的name屬性寫的是picture,那么在Controller方法參數(shù)的名稱也是要寫picture的,否則是獲取不到對應(yīng)的文件的..
@Controller
public class UploadController {
@RequestMapping("/upload")
//MultipartFile該對象就是封裝了圖片文件
public void upload(MultipartFile picture) throws Exception {
System.out.println(picture.getOriginalFilename());
}
}
已經(jīng)明白是怎么回事了。原來,是將 AuthenticationProperties.IsPersistent 設(shè)置為 true 了。
從這幾個(gè)方面入手
1.建立一些有效的索引,索引是比較影響查詢速度的,它可以快速的定位到你要查詢的數(shù)據(jù),如果有多個(gè)條件的話可以建立聯(lián)合索引,但要注意聯(lián)合索引的順序,比如有一個(gè)這樣的索引,有以下這些字段,(user_id,type_id,views (瀏覽次數(shù)))當(dāng)我們寫查詢語句的時(shí)候,mysql會從左往右匹配索引。比如我們這么寫 (加入表名叫post)select * from post where user_id = 1 and views > 2 ,如果這樣的話,我們的索引只匹配到了user_id 就不匹配了,因?yàn)閙ysql只能順序的匹配索引。索引的順序也很重要,一般是將區(qū)分度比較高的索引放在最左側(cè),比如 上邊的例子,因?yàn)橐粋€(gè)網(wǎng)站里用戶的數(shù)量正常來說會比類型的數(shù)量要多很多,所以用戶id的區(qū)分度比較高。
2.如果實(shí)在是無法避免條件確實(shí)不夠,比如上例子確實(shí)只需要這兩個(gè)條件(user_id,views),如果是這兩個(gè),mysql就只能匹配user_id,而type_id 無法匹配,由于type數(shù)量并不多,那么我們可以在語句中加入 and type in(此處填寫所有類型id,當(dāng)然如果類型特別多就不要這么干了)。這樣的話,建立的索引就能全部匹配。
3.盡可能的用合適的數(shù)據(jù)類型來表示數(shù)據(jù),定長的數(shù)據(jù)char要比varchar優(yōu)秀,如果表示狀態(tài)的話tinyint要比int好。
4.如果數(shù)據(jù)量特別多,需要統(tǒng)計(jì)條數(shù)的話,如果不是需要非常精確的數(shù)字 explain 的row 是比較快的方式,它比count要快。
5.切分查詢,比如,有這樣一個(gè)需求。查詢出所有文章(post),并且包含作者的名字也就是user_name ,一般的話,我們會想到去連表,但我們可以把這個(gè)查詢切分開來,先用一個(gè)sql查詢出所有文章,再通過代碼拿到所有user_id,然后用in去user表中查詢,最后將查詢的結(jié)果合并,這么做雖然有些麻煩,但有時(shí)會是比較快的選擇,因?yàn)?,?dāng)我們將查詢分開的時(shí)候,如果此前有程序做過同樣的查詢,mysql就不會執(zhí)行一遍查詢語句,而是會直接從緩存里取數(shù)據(jù)。
6.如果數(shù)據(jù)量不大,建議還是全表掃比較快,因?yàn)楫吘顾饕灿谐杀尽?/p>
H5+js+css
非靜態(tài)代碼塊用的不多,但靜態(tài)代碼塊還是比較常用的,比如你要在類初始化的時(shí)候加載一個(gè)配置文件。
代理id,上級id,所屬層級
你應(yīng)該提供一個(gè)測試帳號,不然誰能幫你?
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。