プロジェクト

全般

プロフィール

Bug(バグ) #4518

kaoru n2年以上前に更新

h3. Overview (現象)

スマートフォン版ホーム画面「SNSメンバーのタイムライン(1行表示)」ガジェットの「もっとみる」を押下後に表示されるSNS全体のタイムライン画面において、「もっと読む」を押下後、コメントを投稿した後、またはコメントを削除した後に自動読み込みが発生した際に表示投稿数が減少する

例: 27件の投稿がある場合、最新のものから20件表示された状態で「もっと読む」を押下し27件全部表示する
→コメント投稿やコメントの削除を行う
→最古の投稿から7件のみ表示される
→「もっと読む」ボタンを押下しても新しい投稿は読み込まれない

h3. Causes (原因)

コメント投稿やコメント削除などタイムラインに変化があった場合に再読み込み処理が実行されるが、「もっと読む」ボタン押下後の場合、差分のみの再読み込みが行われている。

https://github.com/tejimaya/opTimelinePlugin/blob/master/web/js/timeline-loader-smartphone.js#L229-L254
<pre><code class="javascript">
function timelineLoadmore() {
var loadmoreId = $('#timeline-list').attr('data-loadmore-id');
loadmoreId = loadmoreId - 1;
if (gorgon)
{
gorgon.apiKey = openpne.apiKey;
}
else
{
gorgon = {apiKey: openpne.apiKey}
}
gorgon.max_id = loadmoreId;

$.ajax({
type: 'GET',
url: openpne.apiBase + 'activity/search.json',
data: gorgon,
success: function(json){
renderJSON(json, 'more');
$('#timeline-loadmore-loading').hide();
},
error: function(XMLHttpRequest, textStatus, errorThrown){
$('#timeline-loadmore-loading').hide();
}
});
}
</code></pre>
の中で「gorgon.max_id = loadmoreId;」として読み込むべき投稿の最大IDが設定される。
その後
https://github.com/tejimaya/opTimelinePlugin/blob/master/web/js/timeline-loader-smartphone.js#L189-L209
<pre><code class="javascript">
function timelineAllLoad() {
if (gorgon)
{
gorgon.apiKey = openpne.apiKey;
$.ajax({
type: 'GET',
url: openpne.apiBase + 'activity/search.json',
data: gorgon,
success: function (json){
renderJSON(json, 'all');
$('#timeline-list-loader').hide();
},
error: function(XMLHttpRequest, textStatus, errorThrown){
$('#timeline-list-loader').hide();
$('#timeline-list').text('投稿されていません。');
$('#timeline-list').show();
$('.flashTimelineDom').remove();
}
});

}
</code></pre>
が実行されるが、max_id は設定されたままであるため、そのIDを最大としての読み込みしか行われない。

(timelineAllLoad 実行時に max_id を削除した場合、最新から20件の読み込みとなり、コメントの投稿対象が表示されない。)
バグが発生した原因を記入

h3. Way to fix (修正内容)

修正内容を記入

戻る