Любая нижняя сторона не включает атрибуты Protobuf-net? [Дубликат]

Самое простое решение - создать функцию JavaScript и вызвать его для обратного вызова Ajax success.

function callServerAsync(){
    $.ajax({
        url: '...',
        success: function(response) {

            successCallback(response);
        }
    });
}

function successCallback(responseObj){
    // Do something like read the response and show data
    alert(JSON.stringify(responseObj)); // Only applicable to JSON response
}

function foo(callback) {

    $.ajax({
        url: '...',
        success: function(response) {
           return callback(null, response);
        }
    });
}

var result = foo(function(err, result){
          if (!err)
           console.log(result);    
}); 
8
задан gxh8Nmate 22 December 2014 в 22:24
поделиться

1 ответ

Некоторая справочная информация. В буферах протокола вы определяете поле типа

 optional string msg = 1;

. Номер (1 в этом примере) используется для идентификации поля в сообщении данных (или записи данных) и для сопоставления с прото-сообщением, используемым вашей программой.

Хранилища буферов протокола Сообщения, такие как

    FieldId1 Data1
    FieldId2 Data2
        .....
    FieldIdn Datan

Где fieldId состоит из типа поля и поля. Если в поле нет данных, оно не сохраняется в выходном сообщении (записи). Таким образом, у вас может быть

   FieldId3 Data3
   FieldId7 Data7
   FieldId11 Data11

Ответы на ваши вопросы:

  1. В буферах протокола каждое поле имеет один атрибут этих атрибутов: Обязательный, необязательный и повторяющийся , Поэтому, чтобы удалить поле, вы можете сделать его необязательным и не хранить в нем никакого значения. Некоторые люди обычно делают большинство полей опцией
  2. Протокол Соответствует номерам полей в Data-Message с номерами полей в определении Proto. В java, по крайней мере, есть неизвестные поля Карта, где хранятся любые дополнительные поля.

Очень важно, чтобы вы документировали поля (как полевое имя, так и полевой номер) вы удаляете, чтобы убедиться, что вы никогда не используйте имя / номер поля.

Если вы повторно используете поле, вы можете сломать существующий код

5
ответ дан Bruce Martin 5 September 2018 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: