javascript – 不添加要插入移动数据库的第一项

前端之家收集整理的这篇文章主要介绍了javascript – 不添加要插入移动数据库的第一项前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Telerik Platform移动应用程序中使用JayData. JayData的好人处理了我正在寻找的事情的例子:

http://jsfiddle.net/JayData/zLV7L/

  1. var saveFeedIfNotExists = function (Feed) {
  2. //create jQuery promise
  3. console.log("create deferred for " + Feed.FeedID)
  4.  
  5. var def = new $.Deferred();
  6.  
  7. //async thread
  8. pnrDB.PNRFeeds.filter('it.FeedId == ' + Feed.FeedID).count(function (count) {
  9.  
  10. console.log("Add Feed - " + Feed.FeedName);
  11.  
  12. if (count == 0) {
  13. var f = new PNRFeed({
  14. FeedId: Feed.FeedID,FeedName: Feed.FeedName,ImageName: Feed.ImageName,FeedActive: Feed.IsActive,OrderNumber: parseInt(Feed.OrderNumber) + 1
  15. })
  16.  
  17. pnrDB.PNRFeeds.add(f);
  18.  
  19. console.log("Resolve for - " + Feed.FeedName);
  20. //promise.resolve() indicates that all async operations have finished
  21. //we add the ADD/SKIP debug info to the promise
  22. def.resolve("ADD");
  23.  
  24. console.log("Resolved - " + Feed.FeedName);
  25. } else {
  26. //console.log('Feed id not 0 - ' + f.FeedId);
  27. def.resolve("SKIP");
  28. }
  29. });
  30. //return promise in order to wait for the async result of local database query
  31. return def.promise();
  32. };

我已经添加到这个代码,当我运行它也使用他们的Kendo.js模块为JayData(不同于kendo.js从kendo),似乎中断脚本当第一个承诺在循环函数中创建.这只会发生在脚本运行的第一个时间 – 如果要刷新来重新加载,则它会正常运行,并且第一个项目被插入.

在第二个负载上,似乎工作正常,没有调用他们的JayData模块Kendo:

所以即使它似乎添加第一个项目(ID 19),该项目也不会被添加数据库.当您重新加载相同的确切脚本时,它会被再次标记添加,并且不会中断,所以最终进入数据库.

有任何想法或事情要尝试吗?

解决方法

如果你使用html5,那么你可以使用websql来执行数据操作,它提供了所有的功能,如select,insert,update on data
Web sql规范定义了一个用于在数据库中存储数据的API,可以使用sql的变体进行查询.

您可以使用像下面的功能我在我的英特尔XDK手机应用程序中使用它

  1. if you are using html5 then you can use websql to perform data operations,it provides all functions like select,update on data
  2.  
  3. > The Web sql specification defines an API for storing data in databases
  4. > that can be queried using a variant of sql. you can use like following
  5. > function
  6.  
  7. <!-- begin snippet: js hide: false -->
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <script type="text/javascript">
  5. function insert(){
  6. var db = openDatabase('mydb','1.0','Test DB',2 * 1024 * 1024);
  7. var msg;
  8. db.transaction(function (tx) {
  9. var nam = document.getElementById("Tname").value;
  10. var id = document.getElementById("Tid").value;
  11. var name2 = "velocity";
  12. tx.executesql('CREATE TABLE IF NOT EXISTS APP (id unique,log)');
  13. tx.executesql('INSERT INTO APP (id,log) VALUES (?,?)',[id,nam]);
  14. //tx.executesql('INSERT INTO LOGS (id,log) VALUES (61,'+name2+')');
  15. msg = '<p>Log message created and row inserted.</p>';
  16. document.querySelector('#status').innerHTML = msg;
  17. });
  18. }
  19. function readdata(){
  20. var db = openDatabase('mydb',2 * 1024 * 1024);
  21. var id = document.getElementById("Tid").value;
  22. db.transaction(function (tx) {
  23. tx.executesql('SELECT * FROM APP',[],function (tx,results) {
  24. console.log("All rows:");
  25. var len = results.rows.length,i;
  26. msg = "<p>Found rows: " + len + "</p>";
  27. document.querySelector('#status').innerHTML += msg;
  28. for (i = 0; i < len; i++){
  29. msg = "<p><b>Name :-" + results.rows.item(i).log +"<br/>Contact :-" +results.rows.item(i).id + "</b></p>";
  30. msg = "<p><b>Name :-" + results.rows.item(i).log +"<br/>Contact :-" +results.rows.item(i).id + "</b></p>";
  31. //var row = result.rows.item(i);
  32. //msg = console.log(" " + row.contact + " " + row.nam);
  33. document.querySelector('#status').innerHTML += msg;
  34. }
  35. },null);
  36. });
  37. }
  38. function ByContact(){
  39. var db = openDatabase('mydb',2 * 1024 * 1024);
  40. var con = document.getElementById("Con").value;
  41. db.transaction(function (tx) {
  42. tx.executesql('SELECT * FROM APP WHERE (id LIKE ?);',[con],null);
  43. });
  44. }
  45.  
  46. </script>
  47. </head>
  48. <body style="background-image:url('f.jpg');background-repeat:no-repeat;">
  49. <h1 align="center"><font color="white">Contact Form</font></h1>
  50. <div style="color:white">
  51. <table align="center">
  52. <tr>
  53. <td>contact no</td>
  54. <td><input type="text" id="Tid"/></td>
  55. </tr>
  56. <tr>
  57. <td>Name</td>
  58. <td><input type="text" id="Tname"/></td>
  59. </tr>
  60. <tr>
  61. <td>
  62. <button id="add" onclick="return insert();">Insert</button>
  63. </td>
  64. <td>
  65. <button onclick="return readdata();" id="read">readdata</button>
  66. </td>
  67. <td>
  68. </td>
  69. </tr>
  70. </table>
  71. <table>
  72. <tr>
  73. <td>
  74. <button onclick="return ByContact();" id="GetByContact">GetByContact</button>
  75. </td>
  76. <td>
  77. <input type="text" id="Con"/>
  78. </td>
  79. </tr>
  80.  
  81. </table>
  82. <div id="status" name="status"><font color="white">Your Data Will Show Here</font></div>
  83. </div>
  84.  
  85. </body>
  86. </html>

你可以从中获得更多的信息
https://github.com/ccoenraets/backbone-directory/tree/master/localdb
http://www.tutorialspoint.com/html5/html5_web_sql.htm

猜你在找的JavaScript相关文章