我們的Angular.js Web應用程序有時會在iOS8 Safari中凍結。發生此問題時,不會觸發ng-click回調。如果你用普通的javascript onclick替換ng-click,它會起作用。在iOS8設備上的Chrome中不會發生這種情況。Angular.js手機瀏覽器應用程序在iOS 8 Safari上凍結
有沒有其他人注意到iOS8 Safari上的這個問題或者有解決方法?
這個簡單的視圖有時凍結在iOS8 safari。凍結通常發生在您打開標籤頁時,轉到瀏覽器上的其他標籤頁或者可能離開瀏覽器體驗並稍後再回來。在這個例子中,當點擊鏈接tapCount時視圖凍結不會增加。視圖越複雜,凍結越容易。在這個例子中,當我點擊鏈接時,瀏覽器會凍結幾秒鐘。通常凍結在真實複雜的視圖上需要更長時間
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>
你可以發佈一個最簡單的應用程序的例子,你看到這種行爲? – xpereta
嗨xpereta,我已經添加了一個非常簡單的例子,我已經能夠重新凍結一分鐘或更長時間。 –