在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答
夕顏 回答

不需要clean,數(shù)據(jù)改變自動刷新,你不刷新的問題可能是option里的data沒有刷新,你可以在console.log("sumdata:",sumdata)之后打印下option,而且你為什么賦值之后又設置sumdata 和completedata 為[]

哚蕾咪 回答

播放的目錄是通過二進制將(項目外的)視頻寫入到響應中來播放

把這段代碼貼出來看看,還有瀏覽器network的請求和響應

落殤 回答

是這樣的,下面的例子更能清晰表達這個過程:

import Foundation

func test(_ a:Int, _ b:Int=10)->Int{
  return a * b
}

print(test(2))
//20

//assign func test to a variable
let f: (Int, Int) -> Int = test

print(f(2, 3))

這個變量的類型是個通用函數(shù),但
如果把賦值的那一句改成 let f: (Int, Int=10) -> Int = test 編譯器會直接報錯 “Default argument not permitted in a tuple type” , 即函數(shù)本身為變量類型時,不允許帶默認值,因此你的程序在編譯中已經(jīng)自動丟掉了默認值,所以到最后一步出錯。我用的是Swift 4.0

爆扎 回答

js中并沒有真正意義上的數(shù)組,你所用的數(shù)組是偽數(shù)組,實際上是一個對象。
首先你肯定能理解下面這段代碼

var a={"index":"1"}
console.info(a["index"])//結果為1

那么這樣你理解起來也沒問題了

var a={"0":"1"}
console.info(a["0"])//結果為1
console.info(a[0])//更進一步,結果為1

讓我們變得更像數(shù)組一點


var a={"0":"1","1":"3","2":"1",length:3}

你完全可以自己寫一個數(shù)組出來

枕邊人 回答
import pandas as pd

data = [
    {'name':'小明', 'book': 'A'},
    {'name':'小麗', 'book': 'B'},
    {'name':'小明', 'book': 'C'}
]

df = pd.DataFrame(data)
print pd.pivot_table(df, index='name', columns='book', aggfunc=len, fill_value=0)
雨蝶 回答

超時錯誤是服務端問題,又不是客戶端問題。網(wǎng)絡出錯很正常啊,重試就好。

落殤 回答

自問自答:解決了此問題
思路:使用redis(新版本),給Key設定過期(Expire)時間來可以實現(xiàn)這類時效性需求,到過期時,使用發(fā)布/訂閱機制接收key過期失效的消息做后續(xù)處理,結合Redis的HA – Sentinel,可以保障此類業(yè)務的不間斷性

蝶戀花 回答

1、首選__proto__是瀏覽器廠商實現(xiàn)的,W3C規(guī)范中并沒有這個東西。

2、它的作用就是訪問對象的原型。

3、對于js來說,一切皆對象,尤其是引用類型,更是如此。

4、所有的對象都有一個原型(null除外),函數(shù)是對象,那么函數(shù)也不例外。所以Person.__proto__就是訪問這個構造函數(shù)的原型。

5、每一個函數(shù)都有一個prototype屬性,屬性的值也是一個對象,稱為原型對象。所以Person.prototype訪問的就是這個Person類的原型對象。

6、拋開__proto__來說,通過屬性訪問Person的原型可以這樣寫:Person.constructor.prototype。也就是說Person.contractor.prototype === Person.__proto__ //true;

7、假如實例化Person,var p = new Person();綜上所述,p.constructor === Person // true; p.constructor.prototype === Person.prototype // true;

不知道這樣解釋能理解嘛。

北城荒 回答

舉個具體例子,假如你是買東西生成訂單,按道理用戶一次只能生成一個訂單;但是有時候由于網(wǎng)絡原因什么的,用戶連續(xù)點了多次,那這個時候不能說就給人家生成好幾份訂單,所以在生成訂單的時候,用冪等去保證只生成一份。其實往網(wǎng)絡上面去說,一個請求可能由于網(wǎng)絡原因發(fā)送了兩次,但是這些信息只需要被處理一次,這時候就需要冪等去保證只處理一次。

陌璃 回答

(1) 要使用正確的對象類型

這里不能用Mesh,因為這里geometry的點數(shù)不滿足Mesh的規(guī)范,圖形是渲染不出來的,Mesh是由小三角面構成,頂點數(shù)必須是3的倍數(shù)。所以,這里應該用THREE.Line

將:

allLineMesh=new THREE.Mesh(allLine,new THREE.MeshBasicMaterial({color:0x000000,side:THREE.DoubleSide}))

改成:

allLineMesh=new THREE.Line(allLine,new THREE.MeshBasicMaterial({color:0x000000,side:THREE.DoubleSide}))

你會發(fā)現(xiàn)有圖像出來了,但只有一條直線,下面講這個問題。

(2)對對象使用變換之后,要手動更新對象變換矩陣

在three.js中,考慮到性能,框架在做變換的時候不會自動更新變換矩陣(其實還有很多東西都不會自動更新,可以參考文檔里面定義的xxxNeedsUpdate,computeXXX,updateXXX之類的屬性),所以,如果你對對象做了變換之后要用到對象的矩陣,那么你首先需要更新對象的變換矩陣,可以使用Object3D.updateMatrix()方法。

所以,像下面這種寫法是不能看到geometry有任何改變的:

var line = new THREE.Line( geometry, new THREE.LineBasicMaterial( { color: 0x000000, opacity: 0.2 } ) );
line.position.z = ( i * 50 ) - 500; // 這里做了變換,但是沒更新變換矩陣
allLine.merge(line.geometry,line.matrix)//使用原始的變換矩陣,于是對象的變換并沒有應用到geometry上

可以改成:

var line = new THREE.Line( geometry, new THREE.LineBasicMaterial( { color: 0x000000, opacity: 0.2 } ) );
line.position.z = ( i * 50 ) - 500;
line.updateMatrix(); // 加了這句
allLine.merge(line.geometry,line.matrix)

現(xiàn)在可以看到圖像了,但是你會發(fā)現(xiàn)圖像很奇怪:

圖片描述

這是什么鬼?為什么有那么多交叉線?

其實這和Line類型的繪制策略有關,Line是把vertices的點一個一個連起來的,比如vertices里有四個點[A,B,C,D],那么Line在畫的時候,就是A-->B-->C--D,而你想的可能是A-->B,C-->D,簡單驗證一下,使用下面的函數(shù):

            function initObject(){
                var material = new THREE.LineBasicMaterial({
                    color: 0x0000ff
                });
                var geometry = new THREE.Geometry();
                geometry.vertices.push(
                    new THREE.Vector3( -500, 0, 0 ),
                    new THREE.Vector3( 500, 0, 0 ),
                    new THREE.Vector3( 0, 0, -500 ),
                    new THREE.Vector3( 0, 0, 500 )
                );
                var line = new THREE.Line( geometry, material );
                scene.add( line );
            }

運行的結果如下圖:

圖片描述

確實是A-->B-->C--D這樣連的

(3)利用吸附算法使中間連線吸附到邊緣

對于Line的A-->B-->C--D這種畫法我們是沒辦法改變,但是,在這個例子中,我們可以人為的將B-->C邊吸附到邊緣。比如有個上面四個點的坐標如下:

A:[1,0,0]
B:[-1,0,0]
C:[0,0,1]
D:[0,0,-1]

我們可以人為的插一個點E:
A:[1,0,0]
B:[-1,0,0]
E:[-1,0,1]
C:[0,0,1]
D:[0,0,-1]
使得B-->C由斜線變成了沿著邊緣走的斜線:

圖片描述

吸附算法如下:

 // 吸附算法
            function adsorb(geometry,compares){
                var vertices =  geometry.vertices;
                var cdt1 = compares[0];
                var cdt2 = compares[1];
                for (var i = 0 ; i < vertices.length-1; i++) {
                    var vertice = vertices[i];
                    var nextVertice = vertices[i+1];
                    if(Math.round(vertice[cdt1]) !== Math.round(nextVertice[cdt1])
                        && Math.round(vertice[cdt2]) !== Math.round(nextVertice[cdt2])){ // 差異超過兩個維度
                        var vector = new THREE.Vector3();
                        vector[cdt1] = vertice[cdt1];
                        vector[cdt2] = nextVertice[cdt2];
                        vertices.splice(i+1, 0,vector); // 插入一個點
                        i++;
                    }
                }
                geometry.vertices = vertices;
            }

將吸附算法加入到創(chuàng)建過程中:

 function initObject() {
                var geometry = new THREE.Geometry();
                var allLine=new THREE.Geometry();
                geometry.vertices.push( new THREE.Vector3( - 500, 0, 0 ) );
                geometry.vertices.push( new THREE.Vector3( 500, 0, 0 ) );
                for ( var i = 0; i <= 20; i ++ ) {
                    var line = new THREE.Line( geometry, new THREE.LineBasicMaterial( { color: 0x000000, opacity: 0.2 } ) );
                    line.position.z = ( i * 50 ) - 500;
                    line.updateMatrix();
                    allLine.merge(line.geometry,line.matrix)
                    var line = new THREE.Line( geometry, new THREE.LineBasicMaterial( { color: 0x000000, opacity: 0.2 } ) );
                    line.position.x = ( i * 50 ) - 500;
                    line.rotation.y = 90 * Math.PI / 180;
                    line.updateMatrix();
                    allLine.merge(line.geometry,line.matrix)
                }
                adsorb(allLine,["x","z"]);  // 添加這一行
                allLine.verticesNeedUpdate = true;
                allLineMesh=new THREE.Line(allLine,new THREE.MeshBasicMaterial({color:0x000000,side:THREE.DoubleSide}))
                scene.add( allLineMesh );
            }

這樣看起來就正確了

紓惘 回答

iview設計之初就不是響應式的,它的一些組件(如日期組件)在移動端根本不好用,為什么要用iview做pc和移動端適配。如果僅僅只是類似bootstrap柵格系統(tǒng),它的Grid 柵格 可解決問題。

只愛你 回答

可以參考下我開源的 ionic 項目 HW-basic,實現(xiàn)了屏幕適配等開發(fā)常用的功能,適配的代碼在 app.scss和 valiables.scss 中,無需引入其他外部文件。

維她命 回答

要這樣理解,你給的排序條件是不充分的。數(shù)據(jù)庫已經(jīng)按照你的要求按{count: -1}完成了排序,但是因為它們的值都一樣,不管誰放在前面誰放在后面其實都沒有違反你的要求,因為你的要求只是count的降序而已。從數(shù)據(jù)庫的角度來講,既然你沒有額外的要求,那當然是以最高效的方式給你結果,也就是不管count以外的順序,因為這樣最省資源。
那么何為最高效?這里涉及一些數(shù)據(jù)庫底層的知識。在單機上,如果沒有索引支持,數(shù)據(jù)庫會嘗試遍歷所有數(shù)據(jù),然后做一個內(nèi)存排序來給你結果,從節(jié)省資源的角度,顯然這個排序只排到滿足了count降序為止,其他字段可以說是先到先得。這就造成在count相同時,其他順序是隨機的。它們可能受到:

  1. 自己在磁盤上的順序影響,因為這會影響到數(shù)據(jù)庫先遍歷到哪條記錄。并且要注意,每次更新數(shù)據(jù)時它們在磁盤上的順序是會變化的;
  2. 理論上還和數(shù)據(jù)庫使用的排序算法相關。很遺憾我也沒有關注這里的排序到底使用什么算法,沒法給你進一步的信息;
  3. 在分片集群環(huán)境中,結果還受到哪個片先返回數(shù)據(jù)的影響。分片環(huán)境中的排序是先在各個片排好序,再進行一次合并排序;

暫時想到這些??傊悴恢付?,數(shù)據(jù)庫不保證。
至于解決方案也已經(jīng)很明了了,指定一個可以完全確定順序的排序條件,比如:

{$sort: {count: -1, _id: 1}}

但是需要理解,這樣會讓數(shù)據(jù)庫付出額外的努力來保證第二個排序條件的正確性,在實際使用場景中你要根據(jù)實際情況判斷這是不是真的對你有意義。

最后說句無關的話,以后提問的時候建議盡可能用文本貼出相關的代碼和結果,而不是截圖。因為截圖雖然方便了你自己,別人在回答問題的時候如果想用你的代碼或者數(shù)據(jù)做實驗那就相當麻煩。沒有耐心的人可能直接忽略你的問題,對你尋找答案也不是件好事。

青瓷 回答

你不用fillrect 用rect再fill 一樣被覆蓋,canvas是基于狀態(tài)的,你用fillrect 內(nèi)部會處理的,讓當前狀態(tài)結束

陌南塵 回答

不用的,你可以更新一下gradle。

離觴 回答
  1. 和docker沒什么關系
  2. 訪問都是index.php是因為index.php是入口
  3. 重寫增加不了多少負載
  4. 建議你運行的時候看開top看復雜,如果是php-fpm復雜大,那就是php程序需要優(yōu)化了
浪婳 回答

1.因為瀏覽器不支持tcp協(xié)議啊,只有通過http或者Websocket來傳輸,和tcp比起來效率肯定要低,因為次請求和響應都要帶上很多http頭,所以http協(xié)議多用于web服務器,不過基于http協(xié)議開發(fā)起來比較簡單,現(xiàn)在很多rpc框架都支持http協(xié)議。
2.tcp協(xié)議的話可以定制的更高效,但是開發(fā)起來稍微復雜,要兼容各種開發(fā)語言的話需要各自實現(xiàn)一套客戶端。