標準ページと、カテゴリと記事がリストされたニュース モジュールで構成される標準 Web サイトを再作成するように設計されたアプリがあります。ニュースにアクセスすると、ニュース ページのコンテンツが表示され、カテゴリのリストまたは記事の一覧が表示されます。この場合、ニュースページを閲覧すると、(2)カテゴリが表示されます。
Chrome、Firefox、および IE では、ページ間をクリックしてニュースに戻ることができます。カテゴリ、アイテム リスト、記事、メイン エントリのニュース ページに問題なく戻ることができます。ビュー (メイン エントリ ページ用) には、常に正しい HTML が表示されます。しかし、Windows と iPad の Safari では、しばらくはすべて問題ありませんが、最終的に (場合によってはそれよりも早く!)、カテゴリを表示するはずのニュース エントリ ページの HTML が表示されなくなります。さらにイライラするのは、問題が断続的に発生することです。クリックして別のページに戻ってからニュースに戻ると、カテゴリ HTML が表示されるようになりました。コンソールには、安らかな呼び出しからの正しい応答と HTML が表示されています。
[{"id":"22","indexID":"general", "name":"General"},{"id":"23","indexID":"newnewscat","name":"New News Cat"}]
ビューに HTML が表示されていないだけです。
私のルーターには "news/:indexID":"getNews" があります
getNews 関数は
getNews:function(indexID) {
if (indexID == "index") {
this.getPage("news"); // display cms info for news page eg title and long desc
// do we show categories or listings?
var type = this.showItemListingOrCategories("news");
if (type.showCats == 1) {
// show cat listings
var newsCategories = new App.Collection.NewsCategory();
newsCategories.fetch({
success:function() {
var newsCategoryListing = new App.View.NewsCategoryListing({collection:newsCategories});
newsCategoryListing.render(".span9");
}
})
}
else {
// show item listings
var newsItems = new App.Collection.NewsItem([],{indexID:indexID});
newsItems.fetch({
success:function() {
var newsItemListing = new App.View.NewsItemListing({collection:newsItems});
newsItemListing.render({element:".span9",type:"page"});
}
});
}
}
}
newsCategoryListing ビューは
App.View.NewsCategoryListing = Backbone.View.extend({
tagName: "table",
className:"catListing",
render:function($element){console.log("hello");this.collection.each(function(newsCategory) {
this.$el.append(new App.View.NewsCategoryItem({model:newsCategory}).render().el).appendTo($element);
},this);
return this;
});
上記のレンダリング関数に console.log("hello") を追加しました。これは、カテゴリ リストの html の表示に失敗したときに正しく表示されています。
これが十分な情報であることを願っています - 他の誰かがSafariで同様の問題を抱えていましたか?
どうもありがとう