No refresh list when i use 3G connection


#1

I am creating a mobile app. I call a resource that calls an API to give me values. Everything works fine, but with slow connections or 3G $ scope not cool me and therefore when browsing the list of items is old

SERVICES.JS

.factory('Exercises', function($resource) {

// localhost: Local
// 79.148.230.240: server
return $resource('http://79.148.230.240:3000/wodapp/users/:idUser/exercises/:idExercise', {
    idUser: '55357c898aa778b657adafb4',
    idExercise: '@_id'
}, {
    update: {
        method: 'PUT'
    }
});
});

CONTROLLERS

.controller('ExerciseController', function($q, $scope, $state, Exercises) {

	     // reload exercises every time  when we enter in the controller
	     Exercises.query(function(data) {
	         $scope.exercises = data;
	     });

	     // refresh the list of exercises
	     $scope.doRefresh = function() {

	         // reload exercises
	         Exercises.query().$promise.then(function(data) {
	             $scope.exercises = data;
	         }, function(error) {
	             console.log('error');
	         });

	         // control refresh element 
	         $scope.$broadcast('scroll.refreshComplete');
	         $scope.$apply();
	     }

	     // create a new execersie template
	     $scope.newExercise = function() {
	         $state.go('newExercise');
	     };

	     // delete a exercise
	     $scope.deleteExercise = function(i) {

	         // we access to the element using index param
	         var exerciseDelete = $scope.exercises[i];

	         // delete exercise calling Rest API and later remove to the scope
	         exerciseDelete.$delete(function() {
	             $scope.exercises.splice(i, 1);
	         });
	     };
	 })

APP.js

angular.module('wodapp', ['ionic', 'ngResource', 'wodapp.controllers','wodapp.services'])

// Run
.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    // ionic is loaded
  });
})

// Config
.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
  $stateProvider
    .state('slide', {
      url: '/',
      templateUrl: 'templates/slides.html',
      controller: 'SlideController'
    })
    .state('login', {
      url: '/login',
      templateUrl: 'templates/login.html',
      controller: 'LoginController'
    })
    .state('dashboard', {
      url: '/dashboard',
      templateUrl: 'templates/dashboard.html',
      controller: 'DashboardController'
    })
    .state('exercise', {
      url: '/exercise',
      templateUrl: 'templates/exercises.html',
      controller: 'ExerciseController'
    })
    .state('newExercise',{
      url: '/newExercise',
      templateUrl: 'templates/newExercise.html',
      controller: 'NewExerciseController'
    });
  $urlRouterProvider.otherwise('/');
});

#2

Just a thought but maybe your mobile carrier / operator is blocking port 3000 for some reason.

Try giving your 3G speed a test with Ookla speedtest or similar and if the speed should be sufficient maybe try using http://ivanzuzak.info/urlecho/ as a test URL endpoint rather than your server to see if it starts to work.


#3

It’s very possible that a 3G connection could cause a time out error as well, even 4G if the network isn’t primarily supporting it.

Just something to check on