Ajax 通过代理读取器加载的存储中存在不一致的数据损坏

Ajax 通过代理读取器加载的存储中存在不一致的数据损坏,ajax,sencha-touch,store,Ajax,Sencha Touch,Store,我们在通过代理读取器加载的存储中遇到不一致的数据损坏 它取决于浏览器 在桌面上的Chrome和Safari中工作正常 在我们的两款测试iPhone上,它会根据存储区加载的数据间歇性中断,更大的数据量似乎会导致更多中断。我们在JSON数据中看不到任何错误或模式 症状: 加载数据,但缺少属于最后几个项的某些数据 当数据丢失发生时,连接到存储的读侦听器不会启动,它会在桌面浏览器上启动,而我们不会遇到数据丢失 似乎总是丢失的数据是开始时间 我们已经试着调试这个一段时间了,现在真的被难住了 感谢您对为

我们在通过代理读取器加载的存储中遇到不一致的数据损坏

它取决于浏览器

在桌面上的Chrome和Safari中工作正常

在我们的两款测试iPhone上,它会根据存储区加载的数据间歇性中断,更大的数据量似乎会导致更多中断。我们在JSON数据中看不到任何错误或模式

症状:

  • 加载数据,但缺少属于最后几个项的某些数据
  • 当数据丢失发生时,连接到存储的读侦听器不会启动,它会在桌面浏览器上启动,而我们不会遇到数据丢失
似乎总是丢失的数据是开始时间

我们已经试着调试这个一段时间了,现在真的被难住了

感谢您对为什么会发生这种情况有任何想法

我们的regModel

 Ext.regModel('Booking', {
               fields: ['id', 'start', 'end', 'title', 'service', 'service_id', 'client_note', 'stylist_note', 'utc_start','day_date', 'start_time', 'end_time', "home_ph", "mobile_ph", 'work_ph', 'work_ext', 'email', 'utc_end']
               });
我们的商店

   var store = new Ext.data.JsonStore({
         model : 'Booking',
         sorters: 'utc_start',
         autoLoad: false,
         proxy: {
            type: 'ajax',
            url: '../includes/get_appointments.php',
            extraParams: {
                req_start: '1295251200',
                req_end: '1295856000'
                },
            reader: {
                type: 'json',
                root: 'events'
            }
         },
         listeners: {
                load:function(store, records, success) {     
                        bookings.setLoading(false);       
                    // check to see length of records, start i from there
                    for (var i = 0; i < records.length; i++){
                        utc_start = records[i].get('utc_start');
                        utc_end = records[i].get('utc_end');

                        // create day of week
                        // y,m,d
                        // time


                        var this_start_date = new Date((utc_start * 1000));
                        var this_end_date = new Date((utc_end * 1000));                        
                        var day_of_week = days_of_week[this_start_date.getDay()];
                        var date_of_month = this_start_date.getDate();
                        var month_of_year = month_names[this_start_date.getMonth()];
                        var full_year = this_start_date.getFullYear();                            
                        var start_military_hours = this_start_date.getHours();
                        var this_start_minutes = this_start_date.getMinutes();

                        var end_military_hours = this_end_date.getHours();
                        var this_end_minutes = this_end_date.getMinutes();

                        if(this_start_minutes == "0")
                        {
                            this_start_minutes = "00";
                        }
                        if(parseInt(start_military_hours) < 12)
                        {
                            var start_time = start_military_hours + ":" + this_start_minutes + " AM";
                        }
                        else if(parseInt(start_military_hours) == 12)
                        {
                            var start_time = start_military_hours + ":" + this_start_minutes + " PM";
                        }
                        else
                        {
                            var start_time = (parseInt(start_military_hours) - 12) + ":" + this_start_minutes + " PM";
                        }

                        if(this_end_minutes == "0")
                        {
                            this_end_minutes = "00";
                        }
                        if(parseInt(end_military_hours) < 12)
                        {
                            var end_time = end_military_hours + ":" + this_end_minutes + " AM";
                        }
                        else if(parseInt(end_military_hours) == 12)
                        {
                            var end_time = end_military_hours + ":" + this_end_minutes + " PM";
                        }
                        else
                        {
                            var end_time = (parseInt(end_military_hours) - 12) + ":" + this_end_minutes + " PM";
                        }

                        var day_date = day_of_week + ", " + full_year + " " + month_of_year + " " + date_of_month;

                        if(records[i].get('service_id') == 0)
                        {
                            records[i].set('title', 'Booked off');
                            records[i].set('service', '');
                        }


                        records[i].set('day_date', day_date);
                        records[i].set('start_time', start_time);
                        records[i].set('end_time', end_time);                                

                    }

                        if(store.proxy.reader.rawData.next_page_num == undefined)
                        {
                            store.start = store.proxy.reader.rawData.prev_page_num;
                        }
                        else
                        {
                            store.currentPage = store.proxy.reader.rawData.next_page_num;
                        }




                }, read:function(store,records,success){
                    Ext.Msg.alert('data read');
                }

         },       
         getGroupString : function(record) {
            return record.get('day_date'); // optional char from array removed
         }

     });

在经历了多次激烈的争论之后,Sencha Touch商店似乎只能在多达10000个字符的情况下正常工作,我猜是8192+json分隔符

之后,它似乎开始为我们丢失部分数据


其他人能证实这一点吗?

这不是Sencha Touch的特定问题:mobile safari可以处理的Ajax响应大小有限制:请参阅


更新:显然这不是一个移动狩猎问题,这是一个蜂窝网络问题。一些网络将帮助“分页”Ajax调用——认为这是一个常规的网页下载。你能检查一下wifi网络上是否仍然存在这种情况吗?

谢谢,我想我错过了。
{"events":[{"id":"3739","start":"2011-01-18T10:00:00-08:00","end":"2011-01-18T11:45:00-08:00","title":"Jen Cannor","service":"Haircut & Highlights","service_id":"67","client_note":"","stylist_note":"Looking forward to seeing Jen when she comes in next.","utc_start":"1295373600","email":"jen.c@cannorfarms.net","home_ph":"232-433-2222","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1295379900"},{"id":"3740","start":"2011-01-18T12:00:00-08:00","end":"2011-01-18T13:30:00-08:00","title":"Michelle Steves","service":"Root Colour","service_id":"69","client_note":"","stylist_note":"","utc_start":"1295380800","email":"michelle5b64@telus.net","home_ph":"604-555-5555","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1295386200"},{"id":"3741","start":"2011-01-18T13:30:00-08:00","end":"2011-01-18T14:00:00-08:00","title":"Amanda Brenner","service":"Wash & blow dry","service_id":"70","client_note":"","stylist_note":"","utc_start":"1295386200","email":"amandab@coastfitness.com","home_ph":"555-235-2366","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1295388000"},{"id":"3742","start":"2011-01-18T14:00:00-08:00","end":"2011-01-18T15:45:00-08:00","title":"Janice Potters","service":"Haircut & Colour","service_id":"66","client_note":"","stylist_note":"","utc_start":"1295388000","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1295394300"},{"id":"3743","start":"2011-01-18T15:45:00-08:00","end":"2011-01-18T16:45:00-08:00","title":"Angus Middleton","service":"Men's haircut","service_id":"61","client_note":"","stylist_note":"","utc_start":"1295394300","email":"angusman@hotmaile.com","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1295397900"},{"id":"3025","start":"2011-01-19T08:00:00-08:00","end":"2011-01-19T09:45:00-08:00","title":"Jen Cannor","service":"Haircut & Highlights","service_id":"67","client_note":"","stylist_note":"","utc_start":"1295452800","email":"jen.c@cannorfarms.net","home_ph":"232-433-2222","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1295459100"},{"id":"3026","start":"2011-01-19T10:00:00-08:00","end":"2011-01-19T11:45:00-08:00","title":"Karen Walker","service":"Haircut & Colour","service_id":"66","client_note":"","stylist_note":"","utc_start":"1295460000","email":"karenwalker@officesurplusdirect.net","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1295466300"},{"id":"3027","start":"2011-01-19T11:45:00-08:00","end":"2011-01-19T12:45:00-08:00","title":"Amanda Brenner","service":"Women's Haircut","service_id":"65","client_note":"","stylist_note":"","utc_start":"1295466300","email":"amandab@coastfitness.com","home_ph":"555-235-2366","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1295469900"},{"id":"3028","start":"2011-01-19T13:00:00-08:00","end":"2011-01-19T14:30:00-08:00","title":"Mary Thacker","service":"Root Colour","service_id":"69","client_note":"","stylist_note":"","utc_start":"1295470800","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1295476200"},{"id":"3029","start":"2011-01-19T14:30:00-08:00","end":"2011-01-19T15:00:00-08:00","title":"Malcolm Anderson","service":"Men's haircut","service_id":"61","client_note":"","stylist_note":"","utc_start":"1295476200","email":"malcolm@testserveraddy.com","home_ph":"240-444-4444","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1295478000"},{"id":"4856","start":"2011-03-09T09:00:00-08:00","end":"2011-03-09T10:00:00-08:00","title":"Simon Chalk","service":"Men's haircut","service_id":"61","client_note":"","stylist_note":"","utc_start":"1299690000","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299693600"},{"id":"4858","start":"2011-03-09T10:00:00-08:00","end":"2011-03-09T10:15:00-08:00","title":"Brian Lytton","service":"Men's haircut","service_id":"61","client_note":"","stylist_note":"","utc_start":"1299693600","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299694500"},{"id":"4859","start":"2011-03-09T10:15:00-08:00","end":"2011-03-09T10:30:00-08:00","title":"Brad Wicker","service":"Men's haircut","service_id":"61","client_note":"","stylist_note":"","utc_start":"1299694500","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299695400"},{"id":"4860","start":"2011-03-09T10:30:00-08:00","end":"2011-03-09T10:45:00-08:00","title":"Brad Wicker","service":"Men's haircut","service_id":"61","client_note":"","stylist_note":"","utc_start":"1299695400","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299696300"},{"id":"4861","start":"2011-03-09T10:45:00-08:00","end":"2011-03-09T11:00:00-08:00","title":"Brian Lytton","service":"Men's haircut","service_id":"61","client_note":"","stylist_note":"","utc_start":"1299696300","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299697200"},{"id":"4862","start":"2011-03-09T11:00:00-08:00","end":"2011-03-09T11:15:00-08:00","title":"Brian Lytton","service":"Men's haircut","service_id":"61","client_note":"","stylist_note":"","utc_start":"1299697200","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299698100"},{"id":"4863","start":"2011-03-09T11:15:00-08:00","end":"2011-03-09T11:30:00-08:00","title":"Simon Chalk","service":"Men's haircut","service_id":"61","client_note":"","stylist_note":"","utc_start":"1299698100","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299699000"},{"id":"4864","start":"2011-03-09T11:30:00-08:00","end":"2011-03-09T11:45:00-08:00","title":"Chester Welling","service":"Men's haircut","service_id":"61","client_note":"","stylist_note":"","utc_start":"1299699000","email":"chester@eastern.pharma.net","home_ph":"604-555-5555","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299699900"},{"id":"4865","start":"2011-03-09T11:45:00-08:00","end":"2011-03-09T12:00:00-08:00","title":"Brad Wicker","service":"Men's haircut","service_id":"61","client_note":"","stylist_note":"","utc_start":"1299699900","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299700800"},{"id":"4866","start":"2011-03-09T12:00:00-08:00","end":"2011-03-09T13:00:00-08:00","title":"Janice Potters","service":"Women's Haircut","service_id":"65","client_note":"","stylist_note":"","utc_start":"1299700800","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299704400"},{"id":"4867","start":"2011-03-09T13:00:00-08:00","end":"2011-03-09T13:15:00-08:00","title":"Jacqui Chan","service":"Women's Haircut","service_id":"65","client_note":"","stylist_note":"","utc_start":"1299704400","email":"jc@rebelfrontier.net","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299705300"},{"id":"4876","start":"2011-03-09T13:15:00-08:00","end":"2011-03-09T13:30:00-08:00","title":"Mary Thacker","service":"Women's Haircut","service_id":"65","client_note":"","stylist_note":"","utc_start":"1299705300","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299706200"},{"id":"4868","start":"2011-03-10T10:15:00-08:00","end":"2011-03-10T11:15:00-08:00","title":"Trisha Roberts","service":"Women's Haircut","service_id":"65","client_note":"","stylist_note":"","utc_start":"1299780900","email":"trb483408@gmail.com","home_ph":"604-555-5555","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299784500"},{"id":"4870","start":"2011-03-10T11:30:00-08:00","end":"2011-03-10T12:30:00-08:00","title":"Jenson Bryant","service":"Women's Haircut","service_id":"65","client_note":"","stylist_note":"","utc_start":"1299785400","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299789000"},{"id":"4872","start":"2011-03-10T12:45:00-08:00","end":"2011-03-10T13:00:00-08:00","title":"Jenson Bryant","service":"Women's Haircut","service_id":"65","client_note":"","stylist_note":"","utc_start":"1299789900","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299790800"},{"id":"4873","start":"2011-03-10T13:00:00-08:00","end":"2011-03-10T13:15:00-08:00","title":"Jenson Bryant","service":"Women's Haircut","service_id":"65","client_note":"","stylist_note":"","utc_start":"1299790800","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299791700"},{"id":"4874","start":"2011-03-10T13:15:00-08:00","end":"2011-03-10T14:15:00-08:00","title":"Simon Chalk","service":"Men's haircut","service_id":"61","client_note":"","stylist_note":"","utc_start":"1299791700","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299795300"},{"id":"4875","start":"2011-03-11T10:15:00-08:00","end":"2011-03-11T11:15:00-08:00","title":"Karen Walker","service":"Women's Haircut","service_id":"65","client_note":"","stylist_note":"","utc_start":"1299867300","email":"karenwalker@officesurplusdirect.net","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299870900"},{"id":"4877","start":"2011-03-11T12:00:00-08:00","end":"2011-03-11T12:15:00-08:00","title":"Amanda Brenner","service":"Women's Haircut","service_id":"65","client_note":"","stylist_note":"","utc_start":"1299873600","email":"amandab@coastfitness.com","home_ph":"555-235-2366","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299874500"},{"id":"4878","start":"2011-03-11T12:30:00-08:00","end":"2011-03-11T13:30:00-08:00","title":"Arnold Fieldman","service":"Men's haircut","service_id":"61","client_note":"","stylist_note":"","utc_start":"1299875400","email":"","home_ph":"","mobile_ph":"","work_ph":"","work_ext":"","utc_end":"1299879000"}], "next_page_num":"7"}