Example #1
0
				Note.getNoteByServerNoteId(noteId, function(noteLocal) {
					// 2.1 本地没有, 表示是新建
					if(!noteLocal) {
						console.log('add: ...');
						Note.addNoteForce(note, function(note) {
							me._syncInfo.note.adds.push(note);
							return canCall();
						});
					} else {
						// 如果Usn一样, 表示服务器端并没有修改
						if(noteLocal.Usn === note.Usn) {
							console.log('note 如果Usn一样, 表示服务器端并没有修改');
							return canCall();
						}

						// 2.2 本地是否修改了, 冲突, 报告给前端, 前端处理
						// 冲突, 将本地修改的笔记复制一份(设置冲突字段, ConflictNoteId), 远程的覆盖本地的
						// 新方法: 冲突后, 得到最新内容, 看是否与本地内容一致, 如果一致, 则不冲突, 其它数据用服务器上的
						if(noteLocal.IsDirty) {
							console.log('note 冲突.... serverNoteId: ' + noteId);
							// console.log(noteLocal.NoteId);
							// console.log(noteLocal.IsDirty);
							// console.log(noteLocal);
							// note.ServerNoteId = note.NoteId;
							// note.NoteId = noteLocal.NoteId;

							Note.getNoteContentFromServer(noteId, function (content) {
								// 表示没有获取到content, 则只能标志为冲突了
								// 内容不一样, 也标为冲突
								if (content === false || content != noteLocal.Content) {
									me._syncInfo.note.conflicts.push({server: note, local: noteLocal});
								}
								// 否则, 内容一样, 标为不冲突, 需要更新
								else {

									// 2.3 服务器是最新的, 用服务器的
									// 服务器是最新的, 本地没动过, 则覆盖之
									Note.updateNoteForce(note, function(note) {
										if(note) {
											me._syncInfo.note.updates.push(note);
										}
										canCall();
									}, false);

								}
							});

							return canCall();
						// 2.3 服务器是最新的, 用服务器的
						} else {
							// 服务器是最新的, 本地没动过, 则覆盖之
							Note.updateNoteForce(note, function(note) {
								if(note) {
									me._syncInfo.note.updates.push(note);
								}
								canCall();
							});
						}
					}
				});
Example #2
0
							Note.getNoteContentFromServer(noteId, function (content) {
								// 表示没有获取到content, 则只能标志为冲突了
								// 内容不一样, 也标为冲突
								if (content === false || content != noteLocal.Content) {
									me._syncInfo.note.conflicts.push({server: note, local: noteLocal});
								}
								// 否则, 内容一样, 标为不冲突, 需要更新
								else {

									// 2.3 服务器是最新的, 用服务器的
									// 服务器是最新的, 本地没动过, 则覆盖之
									Note.updateNoteForce(note, function(note) {
										if(note) {
											me._syncInfo.note.updates.push(note);
										}
										canCall();
									}, false);

								}
							});