我正在使用Corodva聯繫人插件來獲取本地電話聯繫人其工作很好,現在我需要與數據庫進行比較,我不使用本地數據庫,我正在使用SQL Server 2012和我使用WEBAPI編寫了一些後端代碼,它需要花費大量時間進行比較。我需要一些替代解決方案。請建議下面是我的代碼。最好的方式comapare與服務器的電話聯繫人
//Javascript///
var phoneNumberCollection = new Array();
function showContacts() {
var options = new ContactFindOptions();
options.filter = "";
options.multiple = true;
options.desiredFields = [navigator.contacts.fieldType.id,navigator.contacts.fieldType.displayName, navigator.contacts.fieldType.name, navigator.contacts.fieldType.phoneNumbers];
options.hasPhoneNumber = true;
var fields = [navigator.contacts.fieldType.displayName, navigator.contacts.fieldType.name];
navigator.contacts.find(fields, onSuccess, onError, options);
}
function onSuccess(contacts)
{
// here i have all contacts and i am pushing each number into "phoneNumberCollection" array//
}
function onError(err)
{
}
self.GetContactsData = function() {
self.PhoneNumberCollection = phoneNumberCollection;
jQuery.support.cors = true;
$.ajax({
type: "POST",
dataType: "json",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({mobilecollection: self.PhoneNumberCollection,}),
url: Url + 'api/xxxxxx/xxxxxxxx',
success: function (data) {
self.items($.map(data, function (item) {
return new ContactsModel(item);
}));
},
error: function (err, type, httpStatus) {
}
})
}
//Web API
[HttpPost]
public IHttpActionResult GetContacts(JObject jsonData)
{
try
{
if (jsonData != null)
{
dynamic json = jsonData;
string[] mobilenumberCollection = json.mobilecollection.ToObject<string[]>();
//here i am getting Mobile collection and i am comparing each number with DB. i need some alternative sugggestion for this
var getContacts = CBFriends.getAllcontacts(mobilenumberCollection, deviceUID);
if (getAllContacts != null)
{
return Ok(getAllContacts);
}
else { return NotFound(); }
}
else {
return BadRequest();}
}
catch (Exception)
{ }
}
這取決於很多參數,哪個字段只檢查DB中的ID或聯繫人中的所有字段? – Ygalbel
@ybelbel感謝您的時間,我在我的數據庫中有一個名爲Mobile Number的列,所以我只需要檢查一列,我只比較本地電話號碼和數據庫手機號碼。 –