zoukankan      html  css  js  c++  java
  • SignalR学习笔记(四) 性能优化

    限制消息发送次数

    这种方式在学习笔记(二)-  高并发应用中介绍过,在客户端和服务器端使用定时器来减少消息发送的次数

    减少消息数据的大小

    服务器端,可以使用JsonIgnore, 来忽略不需要序列化的属性,并使用JsonProperty给需要序列化的属性起一个简短的名字

    using Newtonsoft.Json;
    
    using System;
    
    public class ShapeModel
    
    {
    
          [JsonProperty("l")]
    
        public double Left { get; set; }
    
          [JsonProperty("t")]
    
        public double Top { get; set; }
    
        // We don't want the client to get the "LastUpdatedBy" property
    
          [JsonIgnore]
    
        public string LastUpdatedBy { get; set; }
    
    }


     

    但是这样随之而来的问题就是JavaScript中读取这些属性的可读性变差了,前台开发人员很可能不知道l字段是什么,t字段是什么。

    所以Javascript中需要加入一些代码将这些可读性差的属性,转换成可读性好的属性

    function reMap(smallObject, contract) {
    
        var largeObject = {};
    
        for (var smallProperty in contract) {
    
            largeObject[contract[smallProperty]] = smallObject[smallProperty];
    
        }
    
        return largeObject;
    
    }
    
    var shapeModelContract = {
    
        l: "left",
    
        t: "top"
    
    };
    
    myHub.client.setShape = function (shapeModelSmall) {
    
        var shapeModel = reMap(shapeModelSmall, shapeModelContract);
    
        // shapeModelSmall has "l" and "t" properties  but after remapping
    
        // shapeModel now has "left" and "top" properties
    
    };
  • 相关阅读:
    Ajax调用asp.net后台代码
    浅谈Swift集合类型
    强大的swift字符串
    swift的运算符
    Swift的基本类型和流程控制
    Router和History (路由控制)-backbone
    jq里attr和prop的区别
    文本超出盒子的内容用省略号代替
    利用html5中的localStorage获取网页被访问的次数
    html5的本地存储localStorage和sessionStorage
  • 原文地址:https://www.cnblogs.com/lwqlun/p/9095092.html
Copyright © 2011-2022 走看看