Является УСПОКОИТЕЛЬНЫМ быстрее, чем SOAP? и когда использовать одного из них?

Я использую ионный 3 с Lazyload угловой 4 и не имеет проблем. Чтобы сделать его одноразовым, убедитесь, что ваш модуль приложения предоставляет эту услугу. и удалите провайдеров @Component, которые используют сервис.

App Module

@NgModule({
  ...

  providers: [
    StatusBar,
    SplashScreen,
    { provide: ErrorHandler, useClass: IonicErrorHandler },
    Singleton // the service or provider to be single ton
  ]
})
export class AppModule { }

Служба

import { Injectable } from '@angular/core';
import 'rxjs/add/operator/map';

@Injectable()
export class Singleton {

  data = "init data";
  constructor() {
    console.log('Hello Singleton Provider');
  }

  set(data){
    this.data = data;
  }

  log(){
    console.log(this.data);   
  }
}

Tes Case служба на ионной странице

Первая страница

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { Singleton } from '../../providers/singleton';

@IonicPage()
@Component({
  selector: 'page-first',
  templateUrl: 'first.html'
})
export class FirstPage {
  constructor(public navCtrl: NavController, public navParams: 
  NavParams,private single:Singleton) {
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad First');
    this.single.log(); // log init data;
    this.single.set("First singleton data");
  }

}

Вторая страница

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { Singleton } from '../../providers/singleton';

@IonicPage()
@Component({
  selector: 'page-second',
  templateUrl: 'second.html'
})
export class SecondPage {
  constructor(public navCtrl: NavController, public navParams: 
  NavParams,private single:Singleton) {
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad Second');
    this.single.log(); // log First singleton data
  }

}

Третья страница создать новый экземпляр, если провайдеры добавлены в компонент

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { Singleton } from '../../providers/singleton';

@IonicPage()
@Component({
  selector: 'page-second',
  templateUrl: 'second.html',
  providers:[Singleton] // wrong because its create a new instance
})
export class ThirdPage {
  constructor(public navCtrl: NavController, public navParams: 
  NavParams,private single:Singleton) {
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad ThirdPage');
    this.single.log(); // log init data
  }

}

, убедитесь, что провайдеры в компоненте удалены, чтобы сделать его одиночным.

6
задан Community 23 May 2017 в 11:46
поделиться

6 ответов

По моему опыту, SOAP добавляет некоторые накладные расходы, которых можно избежать, создав службу RESTful. При этом, принимая решение, вы должны учитывать свою аудиторию. Если вы ожидаете, что у вашего сервиса будет большое количество внешних потребителей, я бы порекомендовал SOAP, потому что существует множество инструментов, которые автоматически создают для него программный интерфейс.

Некоторые веб-сервисы, такие как PayPal, предлагают несколько альтернатив, так что вы также можете рассмотреть возможность выбора обоих.

6
ответ дан 8 December 2019 в 16:09
поделиться

Чтобы напрямую ответить на ваш вопрос, я бы сказал да . REST обычно считается более легкой альтернативой. Кроме того, на данном этапе REST все еще рассматривается / практикуется многими как скорее «направление / руководство», чем полный протокол.

Есть интересная статья, описывающая их различия в интересном диалоге .

Лично я бы сказал, что REST должен быть намного лучше, чем SOAP, во всех случаях, которые выберет нормальный человек. С другой стороны, проектирование настоящей архитектуры REST требует тщательного планирования и анализа. Большинство попыток терпят неудачу и превращаются в STREST (упомянутый в статье выше), что похоже на смешивание SOAP и REST с потерей некоторых преимуществ REST.

0
ответ дан 8 December 2019 в 16:09
поделиться

При отсутствии четких требований об обратном вы всегда должны предпочитать REST SOAP. Бывают (редкие) случаи, когда SOAP предоставляет вам то, что вам нужно (и такие случаи будут становиться все реже по мере улучшения REST, например, наличия стандарта WADL), но в общем случае SOAP - это просто большая головная боль, чтобы получить ты там, где REST уже стоит и ждет.

0
ответ дан 8 December 2019 в 16:09
поделиться

REST должен быть быстрее, чем SOAP в большинстве случаев, поскольку это более легкий вес, меньше накладных расходов.

Но есть некоторые ситуации, в которых вам нужна функциональность, содержащаяся в этих накладных расходах.

Если вы не хотите стандартизировать одну (это сокращает количество технологий в вашем решении и, следовательно, сложности), практическим правилом будет использование REST, когда вы можете, и SOAP, где вы должны.

4
ответ дан 8 December 2019 в 16:09
поделиться

Одним из факторов является то, что RPC-сообщения часто не кэшируются как часть стека HTTP, поскольку промежуточное ПО кэширования не должно понимать содержимое запроса. Таким образом, системы RESTful могут лучше использовать кеширование.

2
ответ дан 8 December 2019 в 16:09
поделиться

REST почти всегда будет быстрее, так как требуется меньше обработки и конверты меньшего размера.

-1
ответ дан 8 December 2019 в 16:09
поделиться
Другие вопросы по тегам:

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