Ứng dụng web Angular.js của chúng tôi đôi khi bị treo trên iOS8 Safari. Khi sự cố này xảy ra, gọi lại ng-click không được kích hoạt. Nếu bạn thay thế ng-click bằng javascript onclick thông thường, nó sẽ hoạt động. Nó không xảy ra trong Chrome trên các thiết bị iOS8.Ứng dụng trình duyệt di động Angular.js đóng băng trên iOS 8 Safari
Có ai khác nhận thấy sự cố này trên Safari của iOS8 hoặc có khắc phục sự cố không?
Chế độ xem đơn giản này bị treo đôi khi trên safari iOS8. Việc đóng băng thường xảy ra khi bạn mở tab, chuyển đến các tab khác trên trình duyệt hoặc có thể rời khỏi trải nghiệm của trình duyệt và quay lại sau. Trong ví dụ này khi chế độ xem bị đóng băng khi chạm vào liên kết, tapCount không tăng. Quan điểm phức tạp càng dễ bị đóng băng. Trong trình duyệt ví dụ này sẽ đóng băng trong vài giây khi tôi nhấn vào các liên kết một cách nhanh chóng. Thường đóng băng mất nhiều thời gian hơn trên các khung nhìn phức tạp thực sự.
var app = angular.module('myApp', []);
app.controller('freezeCtrl', function($scope) {
$scope['tapCount'] = 0;
$scope['dummyItems'] = [];
for(var i = 0; i < 15; i++) {
var anItem = {'id': i};
($scope['dummyItems']).push(anItem);
}
$scope['updateTapCount'] = function() {
$scope.tapCount += 1;
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="freezeCtrl">
<p>Tap Count = {{tapCount}}</p>
<ul>
<li ng-repeat="item in dummyItems" bindonce>
<p>This is a dummy item #{{item.id}}</p>
</li>
</ul>
<div>
<button ng-click="updateTapCount()">Button 1</button>
<button ng-click="updateTapCount()">Button 2</button>
</div>
</div>
</div>
Bạn có thể đăng ví dụ về ứng dụng đơn giản nhất là bạn thấy hành vi này không? – xpereta
Hi xpereta, tôi đã thêm một ví dụ rất đơn giản, nơi tôi đã có thể repro đóng băng cho một phút hoặc nhiều hơn. –