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

鍍金池/ 問答
忘了我 回答

【mybatis】關(guān)聯(lián)查詢——mybatis一對(duì)多兩種方式實(shí)現(xiàn)詳解
先好好讀一下這篇博客,講的很清晰透徹,按照這篇博客的說法你這屬于第二種用法,mybatis通過查詢結(jié)果之后折疊結(jié)果集把數(shù)據(jù)放在了集合里,這就導(dǎo)致總條數(shù)的混亂.而第一種的方式是分兩次查詢,就不會(huì)有分頁的問題,所以解決方案就是把你的collection 寫成第一種的方式


PageHelper的作者明確表示了不支持這么干
Mybatis-PageHelper

詆毀你 回答

68行:
分號(hào)可省略,這就好像

int main()
{
    return 0;
}

后面不需要分號(hào)一樣。

70行:
沒有大括號(hào)分號(hào)就不能省略,
類似于你先聲明foo,這里要分號(hào)

void foo();

再寫main

int main()
{
    foo();
    return 0;
}

然后定義foo,這里不要分號(hào)

void foo()
{
    printf("foo");
    return;
}

另:
至于override只是一個(gè)附加的標(biāo)識(shí)符,
表明函數(shù)是重載的。。。

墨染殤 回答

這是 firing 設(shè)置為 true 的時(shí)間段,其中會(huì)執(zhí)行 list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ],這里是執(zhí)行 callback 的地方

            for ( ; queue.length; firingIndex = -1 ) {
                memory = queue.shift();
                while ( ++firingIndex < list.length ) {

                    // Run callback and check for early termination
                    if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
                        options.stopOnFalse ) {

                        // Jump to end and forget the data so .add doesn't re-fire
                        firingIndex = list.length;
                        memory = false;
                    }
                }
            }

            // Forget the data if we're done with it
            if ( !options.memory ) {
                memory = false;
            }

而執(zhí)行 callback 的過程中將 firing 設(shè)置為 true ,memory 模式下每次 add 一個(gè)新函數(shù)都會(huì)執(zhí)行前面結(jié)過記憶的參數(shù),這里這樣做加一個(gè) flag 防止一些不可控的 bug (例如死循環(huán))

舉個(gè)例子:

var callbacks = $.Callbacks( "memory" );
callbacks.add(function(value) { return callbacks.add(function(value) { console.log(value) }) });
callbacks.fire( "foo" );
callbacks.add(function(value) { return callbacks.add(function(value) { console.log(value) }) });

如果某一個(gè) callback 里面重新加入了一個(gè) callback,那么 memory 模式下就必須多次執(zhí)行之前的參數(shù),這里的結(jié)果就不是 foo foo 了。

初心 回答

wxParser,現(xiàn)在小程序也支持了rich-text

蟲児飛 回答

請(qǐng)求頭中的content-Type字段內(nèi)容沒有在Access-Control-Allow-Headers中被設(shè)置為允許。服務(wù)端配置下Access-Control-Allow-Headers。

替身 回答

Windows或者Linux下,我一般都是直接寫的絕對(duì)路徑
同時(shí)也建議寫成完整路徑,這些看起來更加清晰易懂

volumes:
  - H:/code:/webser/www  # H是盤符,H:/code是Windows共享目錄
柒喵 回答

type H map[string]interface{}
不管是gin還是echo,Json的第二個(gè)參數(shù)都是interface,你就自己將 map[string]interface{}定義成H就可以了。。。

爛人 回答

Range API 很強(qiáng)大的, 有 compareBoundaryPoints 可以比較 range 的邊界,所以 filter 是走得通的。

關(guān)鍵API:

  • window.getSelection
  • selection.getRangeAt
  • document.createRange
  • range.selectNode
  • range.compareBoundaryPoints
  • range.setStart / range.setEnd

且看例子,按我理解的實(shí)現(xiàn)的一個(gè):

JSFiddle Range 操作示例

拮據(jù) 回答
select a.name, b.total from mer_content a 
inner join
(select id, count(url) as total from mer_imgurl group by id) b
on a.id = b.id

就是把表二先按做個(gè)group,再和表一用id來join。
如果表二的id和url會(huì)有重復(fù)情況的話,那么b中需要改成count(distinct url)

希望能夠幫到你。

耍太極 回答

keyup事件,keyup時(shí)判斷是否符合正則,不符合replace掉

挽歌 回答

最終繼承自 Object ,不是默認(rèn)。好好看看原型鏈!

    class A {
    }    
    
    let a = new A()
    
    function proto (instance) {
      if (!instance) return
      console.log('=============', instance.__proto__.constructor);
      proto(instance.__proto__)
    }

    proto(a)
    
    /*
        a
        ↓
        A
        ↓
        Object
    */ 
    
吃藕丑 回答

前后端分離,即前端頁面脫離后端服務(wù)也可以單獨(dú)運(yùn)行。
我從開發(fā)和上線兩個(gè)部分簡單說一下。

  • 開發(fā)

前端開發(fā)不再依賴后端服務(wù),定義好數(shù)據(jù)結(jié)構(gòu)和接口名稱就可以了。
比如采用restful的模式:前端使用mock,后端使用swagger。
這樣就不會(huì)由一端而影響另一端的進(jìn)度。再者,后端可以同時(shí)支持web、移動(dòng)以及第三方的系統(tǒng)。

  • 上線

前后端可以獨(dú)立部署,不再將前端的文件放到后端的服務(wù)中。也可以更好的做負(fù)載等一些運(yùn)維的操作。

再說說SSR,也就是服務(wù)端渲然。目前要在需要支持SEO的情況下,才會(huì)做SSR。

看你的需求,用遞歸來做會(huì)好一些,但是這個(gè)尾遞歸很難進(jìn)行優(yōu)化
因?yàn)檫@個(gè)類似的需求肯定是要先獲取到最深層的節(jié)點(diǎn),為了避免一些重復(fù)計(jì)算,就很難做成尾遞歸的形式,因?yàn)樯洗握{(diào)用棧的信息需要存儲(chǔ),在內(nèi)部函數(shù)執(zhí)行完畢后拿到結(jié)果再進(jìn)行賦值:

func(data)

console.log(data)
  
function func(data) {
  data.forEach(item => {
    item.depth = getDepth(item)
  })
}

function getDepth(data) {
  return data.children.length ? Math.max(...data.children.map(child => {
    child.depth = getDepth(child)
    return (child.depth || 0) + 1
  })) : 1
}

P.S. 這兩個(gè)函數(shù)可以合并為一個(gè),就留給你自己練手咯

青黛色 回答

首先檢查一下線上服務(wù)器的 web/index.php 是否確實(shí)有這兩行:

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

因?yàn)橐话闱闆r下 web/index.php 是不放在版本控制中的。

另外,冒昧的問一下,'我的IP' 是公網(wǎng)IP嗎?不是 192.168 開頭的IP吧?

假灑脫 回答

多關(guān)聯(lián)幾次用戶表就可以了吧,如:

select t.*, u1.name, u2.name
from t inner join t_user u1 on u1.uid = t.uid1
       inner jion t_user u2 on u2.uid = t.uid2
汐顏 回答

我改為view.layer.transform = CATransform3DMakeRotation(angle, 0, 0, 1)去測(cè)試,發(fā)現(xiàn)只有相對(duì)于z軸旋轉(zhuǎn)時(shí)有問題,看起來不像是繞z軸旋轉(zhuǎn)

如果使用動(dòng)畫的方式來進(jìn)行旋轉(zhuǎn)就沒有問題!!

CABasicAnimation *circleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
view.duration = 0;
view.repeatCount = 1;
view.toValue = @(angle);
view.removedOnCompletion = NO;
view.fillMode = kCAFillModeForwards;
[view.layer addAnimation:circleAnimation forKey:@"rotation"];

原因是使用CATransform3DMakeRotation后修改了坐標(biāo)系,那么接下來是不能夠在此設(shè)置其所在視圖的frame的。這里我多次設(shè)置了其frame所以導(dǎo)致該問題

氕氘氚 回答

1.你是要進(jìn)入頁面為1還是第一次渲染出來的為1
2.如果是進(jìn)入頁面就是1,那應(yīng)該在router的beforeEach里判斷路由,然后處理
3.如果是渲染的時(shí)候?yàn)?,那么在created的時(shí)候commit一下,把state改為1就好了