小编Nic*_* Ul的帖子

表单提供程序ngForm

我有以下问题.我想使用NG2 Forms.根据angular 2文档,使用表单上的ngForm指令和输入上的ngControl指令,表单应始终可以访问输入的有效性.
 
如果输入与表单位于同一组件中,则此方法有效,但只要将输入移动到子指令中,它们就不再获取ngForm-Provider.
 
这有效:

import { Component, Input } from 'angular2/core';
import { FORM_DIRECTIVES } from 'angular/common';

@Component({
    directives: [FORM_DIRECTIVES],
    template: `
        <form #heroForm="ngForm">
            <input type="text"
                [(ngModel)]="input.test"
                ngControl="name">
        </form>
    `
})
export class FormTest1 {
    public input = {
        test: ""
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这不是:

import { Component, Input } from 'angular2/core';
import { FORM_DIRECTIVES } from 'angular/common';


@Component({
    directives: [FORM_DIRECTIVES],
    template: `
        <input *ngIf="data"
            [(ngModel)]="data.test"
            ngControl="name">
    `
})
export class FormInput {
    @Input() data;
}

@Component({
    directives: …
Run Code Online (Sandbox Code Playgroud)

forms typescript angular

6
推荐指数
1
解决办法
2720
查看次数

UdpSocket recv_from性能问题

我不确定这是否是特定于语言的问题,但我不妨试试.
对于我们公司的项目,我们试图通过UDP实现22MB大文件的数据传输协议.我们知道TCP更适合这种情况,但硬件开发决定它必须是UDP.
 
我们得到的逻辑是客户端通过1500字节大小的包发送22MB文件.每个包的标题中都有一个唯一的ID.第一批这些~15000个软件包需要大约一秒的时间来传输,但由于使用了UDP,我们当然会丢失~2000个软件包.
 
每批包都以一个独特的"最终包"结束,告诉我们,来自客户端的传输已经完成,我们可以通过他们的唯一ID开始请求丢失的包.由于限制,我们一次只允许请求255个包,因此我们必须发送大量重发请求.由于最终封装,我们不必使用套接字超时,每个请求周期必须大约250ms才能有效地避免仍然被传输的包,从而导致大量的时间浪费.
 
现在针对实际问题:
虽然请求255个包并接收它们的第一个周期需要0.01秒,但每个周期后需要0.4秒.我已经将问题的根源追溯到"recv_from"函数.我确保在结束"end-package"之前它在每个周期都收到相同数量的包,虽然它甚至可以达到完全相同的字节数,但它需要40倍的时间.
 

fn receive( socket: &UdpSocket, buf: &mut [u8;1600] ) -> Vec<Vec<u8>>{
    let mut res: Vec<Vec<u8>> = vec![];

    let mut x = Duration::seconds( 0 );
    loop{
        // time tracking
        let start = PreciseTime::now();
        let ( n, _ ) = socket.recv_from( buf ).unwrap();
        let end = PreciseTime::now();
        x = x + ( start.to( end ));

        // difference in time doesn't occur here
        let mut v = vec![];
        v.push_all( &buf[ 0..n ]);

        // this …
Run Code Online (Sandbox Code Playgroud)

udp rust

5
推荐指数
0
解决办法
190
查看次数

标签 统计

angular ×1

forms ×1

rust ×1

typescript ×1

udp ×1