這個(gè)接口返回的數(shù)據(jù)只是個(gè) json 不是 jsonp 呀…
jsonp 應(yīng)該是這樣的:
__jp0({"singerList": {"data": {....} }})<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hisen</groupId>
<artifactId>BookSystem_V0</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>BookSystem_V0 Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<!-- 單元測(cè)試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<!-- 1.日志 -->
<!-- 實(shí)現(xiàn)slf4j接口并整合 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.1</version>
</dependency>
<!-- 2.數(shù)據(jù)庫(kù) -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!-- DAO: MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.3</version>
</dependency>
<!-- 3.Servlet web -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- 4.Spring -->
<!-- 1)Spring核心 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<!-- 2)Spring DAO層 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<!-- 3)Spring web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
</dependencies>
<build>
<finalName>BookSystem_V0</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
這么麻煩,還不如 yum remove firewall && yum install iptables 呢
doSomething(e); 是外層對(duì)象的實(shí)例方法,會(huì)把ThisEscape.this引用發(fā)布出去
你要改用 Autodesk.Viewing.Private.GuiViewer3D 去創(chuàng)建 Viewer 默認(rèn)的工具列跟 ViewCube 才會(huì)出現(xiàn),或者是在使用 Autodesk.Viewing.Viewer3D 的情境通過(guò)下面的代碼創(chuàng)建 ViewCube 和 Toolbar
// ViewCube
const viewCubeUi = new Autodesk.Viewing.Private.ViewCubeUi( viewer );
viewer.viewCubeUi = viewCubeUi;
viewCubeUi.create();
// Toolbar
const toolbar = new Autodesk.Viewing.UI.ToolBar( 'my-awesome-toolbar' );
viewer.toolbar = toolbar;
// Button
var button1 = new Autodesk.Viewing.UI.Button( 'my-orbit-button' );
button1.onClick = function(e) {
var state = button1.getState();
if( state === Autodesk.Viewing.UI.Button.State.INACTIVE ) {
viewer.setActiveNavigationTool( 'orbit' );
button1.setState(Autodesk.Viewing.UI.Button.State.ACTIVE);
} else if( state === Autodesk.Viewing.UI.Button.State.ACTIVE ) {
viewer.setActiveNavigationTool();
button1.setState( Autodesk.Viewing.UI.Button.State.INACTIVE );
}
};
button1.addClass( 'my-orbit-button' );
button1.setToolTip( 'Orbit' );
// SubToolbar
const subToolbar = new Autodesk.Viewing.UI.ControlGroup( 'my-custom-view-toolbar' );
subToolbar.addControl( button1 );
toolbar.addControl( subToolbar );
默認(rèn)工具僅少數(shù)是通過(guò)擴(kuò)展加載例如 Autodesk.Section、Autodesk.FirstPerson, Autodesk.BimWalk,其大多數(shù)都是編寫(xiě)在 GuiViewer3D 的代碼內(nèi),請(qǐng)到 viewer3d.js 里查找 GuiViewer3D#createUI() 的執(zhí)行思路。
參考:
你返回的是字符串并不是js可以執(zhí)行的代碼要做一些轉(zhuǎn)換
var WEBAPICONSTANT = {
WEBAPI: {
URL: "1111111111"
}
}
var str = "WEBAPICONSTANT.WEBAPI.URL + '/ssologin/login?m=SBYHMOD_03'";
console.log(str)//WEBAPICONSTANT.WEBAPI.URL + '/ssologin/login?m=SBYHMOD_03'
//理由eval轉(zhuǎn)換
console.log(eval(str))//1111111111/ssologin/login?m=SBYHMOD_03
//理由new Function轉(zhuǎn)換
var func = new Function("return " + str);
console.log(func())//1111111111/ssologin/login?m=SBYHMOD_03
不過(guò)一般都是這樣
var WEBAPICONSTANT = {
a:"aaaa",
b:"bbbb"
}
var str = "a";
console.log(WEBAPICONSTANT[str])//aaaa分層設(shè)計(jì)
路由和模型之間加一層控制器來(lái)處理業(yè)務(wù)邏輯
//以文章為例,文章控制器
'use strict';
import ArticleModel from '../../models/article';
class Article {
constructor() {
//...
}
async getArticleById(req, res, next) {
//查找
let article = await ArticleModel.findOne(...);
}
async addArticle(req, res, next) {
//新增
}
// 更新文章需要更新文章評(píng)論數(shù)
// 刪除文章
async deleteArticle(req, res, next) {
//刪除
}
// 更新文章
async updateArticle(req, res, next) {
// 更新
//這里可以先查找在更新,多次調(diào)用
}
}
export default new Article();
//文章路由
'use strict';
import express from 'express';
import Article from '../controllers/blog/article';
const router = express.Router();
router.get('/article/:id', Article.getArticleById);
router.post('/article/add', Article.addArticle);
router.post('/article/update', Article.updateArticle);
router.post('/article/delete', Article.deleteArticle);
export default router
我之前看到的一個(gè)koa+mysql寫(xiě)的也可以參考下,原理類(lèi)似
koa-blog
這個(gè)可以用$lookup
db.表A.aggregate([
{
$unwind: "$name"
},
{
$lookup:
{
from: "表B",
localField: "name",
foreignField: "name",
as: "match_name"
}
},
{
$match: { "match_name": "小豬佩奇全集" }
}
])
你每秒都執(zhí)行setInterval,可是如果在一秒內(nèi),setInterval中的內(nèi)容沒(méi)執(zhí)行完,你覺(jué)得會(huì)怎么樣呢?
1:嘗試用ssh vagrant@192.168.10.10登陸
2:vi ~/.composer/vendor/laravel/homestead/scripts/homestead.rb增加 config.vm.box_check_update = false
解決
把test.sass修改成test.scss就行了
原因
sass和scss的語(yǔ)法不一樣
花括號(hào){}和分號(hào) ;是scss里面的語(yǔ)法
1.看到你說(shuō)的是頁(yè)面跳轉(zhuǎn)了,在跳轉(zhuǎn)之前發(fā)送事件,這個(gè)時(shí)候apple組件還不在內(nèi)存里,所以接收不到數(shù)據(jù),跳轉(zhuǎn)之后hello組件的生命周期結(jié)束,也不在生命周期里了
2.eventbus只能在都掛載在內(nèi)存里的組件之間傳遞數(shù)據(jù),像你這種需求可以用vuex,或者在路由之間傳遞數(shù)據(jù)
發(fā)你的 spl_autoload_register 注冊(cè)的函數(shù).
Ctrl+shift+p
set syntax XML
你應(yīng)該在你的入口文件 test.js 添加 import 'babel-polyfill'。
exprss里是這么配置的,關(guān)鍵在于允許options請(qǐng)求以及options請(qǐng)求自動(dòng)返回200
看你說(shuō)的返回兩次可能是因?yàn)閜ost請(qǐng)求沒(méi)達(dá)到簡(jiǎn)單請(qǐng)求的要求,會(huì)發(fā)送options
// cors跨域配置
app.all('*', function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With, Current-Page');
res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
if (req.method == 'OPTIONS') {
res.sendStatus(200);
} else {
next();
}
});
MyISAM這個(gè)引擎是專(zhuān)門(mén)為大量讀的場(chǎng)景而做的優(yōu)化, 很少寫(xiě),甚至沒(méi)有寫(xiě)最好了。如用做CMS存儲(chǔ)引擎。
嚴(yán)格來(lái)說(shuō)MyISAM引擎也并不是沒(méi)有事務(wù)管理。只是他的事務(wù)管理僅限于單表行記錄。
如果需要事物管理,用于類(lèi)似比如交易場(chǎng)景,用這個(gè)引擎的話,就必須手工處理事物相關(guān)的操作,比如完整性一致性。
在這個(gè)場(chǎng)景下用InnoDB是更好的選擇。
如果是用于spa單頁(yè)應(yīng)用:
let mask = document.getElementsByClassName("weui-mask")[0];
let picker = document.getElementsByClassName("weui-picker")[0];
if (mask && picker) {
var btn = document
.getElementsByClassName("weui-picker")[0]
.getElementsByClassName("my-btn")[0];
var e = document.createEvent("MouseEvents");
e.initEvent("click", true, true);
btn.dispatchEvent(e);
}
當(dāng)時(shí)我是用第二種方法做的,有點(diǎn)笨
理論上,這種無(wú)法還原到最初的 python 源碼,但可以先用反匯編工具分析,得到近似的 c 源碼,再轉(zhuǎn)成 python 源碼。
據(jù)我所知,目前(2018年8月22日)尚無(wú)完整的工具鏈。
反匯編工具首選 IDA Pro。
不同于 pyinstaller 生成的文件,這種文件通常是 cython + gcc 生成,它依賴 libpythonX.Ym.so 庫(kù)文件,但不需要 python 環(huán)境。
你可以運(yùn)行 ldd <file> 確認(rèn)。
附上生成的示例
編寫(xiě) python 源碼,如 a.pyx
print('hi')
將 python 源碼轉(zhuǎn)成 c 源碼,得到 a.c
cython a.pyx --embed
編譯 c 文件
gcc -I /usr/include/pythonX.Ym -o a a.c -lpythonX.Ym
樓上的說(shuō)法正確的。JavaScript繼承機(jī)制是這樣的,如果實(shí)例對(duì)象自身就有某個(gè)屬性或方法,它就不會(huì)再去原型對(duì)象尋找這個(gè)屬性或方法。學(xué)習(xí)javascript可以花一些時(shí)間學(xué)習(xí)以下阮一峰老師的博客,內(nèi)容準(zhǔn)確度較高,講解的也比較清楚,比如你的問(wèn)題就可以在這篇里面看到答案:
prototype 對(duì)象
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dò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ù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。