小编oli*_*oli的帖子

jquery ajax忽略500状态错误

我正在向App Engine应用程序发出一些GET请求,在Chrome中进行测试.虽然我可以在javascript控制台中看到一些调用导致500服务器错误,但我似乎无法在我的jQuery代码中发现捕获此错误,尽管读取了许多类似的SO线程.我知道它表示服务器端错误,但我仍然希望能够从我的javascript中捕获这样的错误.

我需要捕获错误,以便我可以计算响应的数量(成功或其他),并在收到所有呼叫响应时触发另一个功能.

Chrome控制台输出:

GET http://myapp.com/api?callback=jQuery12345&params=restOfParams 500 (Internal Server Error)
Run Code Online (Sandbox Code Playgroud)

我的电话:

  function makeCall() {
    var count = 0;
    var alldata = $('#inputset').val();
    var rows = alldata.split('\n');
    var countmatch = rows.length;
    for (i=0;i<rows.length;i++) {
      data["param"] = rows[i]["val"];
      $.ajax({
              url: apiUrl,
              type: 'GET',
              data: data,
              dataType: 'jsonp',
              error: function(){
                  alert('Error loading document');
                  count +=1;
              },
              success: function(responseJson) {
                            count +=1;
                            var res = responseJson.results;
                            if (count == countmatch) {
                              allDoneCallback(res);
                            }
                        },
             });
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下一些方法:
添加:

statusCode: {500: function() {alert('err');}}
Run Code Online (Sandbox Code Playgroud)

打电话. …

jquery jquery-callback

13
推荐指数
1
解决办法
2万
查看次数

传单层的定义

layer传单映射库中代表什么?

从概念上讲,对我来说,一个层将代表某种类型的特征或对象的单层; 例如,表示基础水平图的所有图像区块将在单个层上表示,表示美国状态的一组多边形可以在它们自己的单独层上.

具体L.GeoJSON.addGeoJSON(geojson)来看,它会读取创建的每个新多边形都放在它自己的图层中(然后可能与您调用该方法的图层合并?).我的用例是我需要一次添加一个geoJSON对象,并希望确保我不会创建许多不必要的层(或者如果我是,如果这实际上是一件坏事).

谢谢.

leaflet

13
推荐指数
1
解决办法
6194
查看次数

消费行视图的骨干表视图 - 如何构建?

我有一组模型,我希望在表格视图中呈现.每个模型应该由表中的单个行表示,并且该行应该使用模板生成.我应该能够将事件处理程序附加到该行(例如单击),在事件警报时,可以提供有关与该行关联的模型的一些特定信息.

我看到类似事情的常见方法是将每一行分解为它自己的视图,并且有一个父视图(在本例中可以说是表格)使用行视图来生成要包含在代码中的html .但是,我无法弄清楚它如何与模板一起使用.

在这种情况下,我无法将事件专门附加到RowView,因为它没有引用dom元素(this.el对于主干),它只返回一个字符串.如何使用模板获得最大容量,我怎样才能达到我的目的?

问题不是关于事件,模板或使用嵌套视图,而是关于使用Backbone实现这种输出的正确方法.

示例代码(也在小提琴中):

/** View representing a table */
var TableView = Backbone.View.extend({
    tagName: 'table',
    render: function() {
        var rows = _.map(this.collection.models, function(p) {
            return new RowView({model: p}).render();                        
        });
        $('body').html(this.$el.html(rows.join('')));
    }
});

/** View representing a row of that table */
var RowView = Backbone.View.extend({
    render: function() {
        // imagine this is going through a template, but for now
        // lets just return straight html.
        return '<tr>' + 
                '<td>' + this.model.get('name') + '</td>' …
Run Code Online (Sandbox Code Playgroud)

javascript backbone.js backbone-views

11
推荐指数
1
解决办法
9244
查看次数

使用python中的csv.DictReader进行数据类型转换的最快方法

我正在使用python中的CSV文件,在使用时将有大约100,000行.每行都有一组维度(作为字符串)和一个指标(浮点数).

由于csv.DictReader或csv.reader仅将值返回为字符串,因此我正在迭代所有行并将一个数值转换为float.

for i in csvDict:
    i[col] = float(i[col])
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法,任何人都可以建议这样做?我一直在玩地图,izip,itertools的各种组合,并且已经广泛搜索了一些更有效地做这些的样本,但遗憾的是没有取得多大成功.

如果它有帮助:我在appengine上做这个.我相信我正在做的事情可能导致我遇到这个错误:在处理11个请求总数后超过了267.789 MB的软进程大小限制 - 我只在CSV非常大时得到它.

编辑:我的目标 我正在解析此CSV,以便我可以将其用作Google Visualizations API数据源.最终数据集将加载到gviz DataTable中进行查询.必须在构造此表期间指定类型.如果有人在python中知道一个好的gviz csv-> datatable转换器,我的问题也可以解决!

Edit2:我的代码

我相信我的问题与我尝试修复cmvTypes()的方式有关.此外,data_table.LoadData()需要一个可迭代的对象.

class GvizFromCsv(object):
  """Convert CSV to Gviz ready objects."""

  def __init__(self, csvFile, dateTimeFormat=None):
    self.fileObj = StringIO.StringIO(csvFile)
    self.csvDict = list(csv.DictReader(self.fileObj))
    self.dateTimeFormat = dateTimeFormat
    self.headers = {}
    self.ParseHeaders()
    self.fixCsvTypes()

  def IsNumber(self, st):
    try:
        float(st)
        return True
    except ValueError:
        return False

  def IsDate(self, st):
    try:
      datetime.datetime.strptime(st, self.dateTimeFormat)
    except ValueError:
      return False

  def ParseHeaders(self):
    """Attempts to …
Run Code Online (Sandbox Code Playgroud)

python csv dictionary type-conversion

8
推荐指数
1
解决办法
6125
查看次数

平滑动画属性一次更改为~3000 Raphael对象

更新的问题 我已将此更新为更简洁..:

在这个小提琴:http://jsfiddle.net/pX2Xb/4/我有一些raphael代码,可以在页面上绘制3000个圆圈.然后它会尝试在10秒内一次动画所有圆圈(更改填充颜色),这会产生笨重的视觉动画.将圆圈数更改为20以查看更平滑的动画以进行比较.

我的问题是(a)我是否有可能使3000个元素的更新更顺畅;(b)如果是这样,那么代码看起来是什么样的?

一些说明:

  • 如果有一些优化方法,我愿意采取一些小的时间点击,但是,例如,我希望所有圈子至少在1.5倍更新,无论动画时间设置如何.因此,如果动画为10秒,则所有圆圈应在15中更改.
  • 目前3000个元素大致是我的极限,所以我很乐意为它工作:)在说,如果一个解决方案可以有效地处理更多,对于一般情况,这真的很棒.

较旧的细节,以防万一

我正在创建一个美国县的大型地图,其中有超过3000个; 我正在使用这个维基百科svg文件获取相关的SVG路径来创建地图,并使用RaphaelJs渲染地图.

因此,我最终得到了超过3000条类似于以下内容的陈述:

    var cc_02130 = rsr.path("M 140.66674,.... 320.11635"); // county path
    cc_02130.attr({id: '02130',.. .."marker-start": 'none'}); // init attrs
Run Code Online (Sandbox Code Playgroud)

我也创建了一个Paper.set()对象来保存所有这些元素:

var myset = paper.set([cc_56039, cc_56040, cc_56041 ...])
Run Code Online (Sandbox Code Playgroud)

忘记这里实际生成的文件非常大,我非常感谢有关如何对上面详述的对象量进行更改的建议,这是快速且合理的CPU明智(可能是一个很大的问题).

我肯定愿意改变我的代码/对象的结构,只要我可以单独更改特定县的属性.例如,我希望能够在一秒钟或两秒内为每个路径内容应用不同的颜色(对于所有3000+).

我面临的挑战不是如何应用颜色变化,动画等,而是如何快速有效地完成这项工作.现在,如果我循环并对3000多个对象进行更改,我的机器会对我尖叫; 作为替代方案,我正在使用setTimeout将更改分解为更小的块(可能一次只有10个,延迟40毫秒).超过3000项,这变得非常慢,仍然使用了大量的CPU.

谢谢,奥利

javascript svg visualization raphael

5
推荐指数
1
解决办法
3525
查看次数

使用Raphael 2进行动画缩放

我有一组路径元素,我正试图用动画缩放.基于一些演示,我看到这应该是可能的,但我没有运气.

我尝试过以下方法:

set.mouseover(function() {
    this.toFront().animate({'fill':'green', 'scale':'5 5'}, 50);
});
Run Code Online (Sandbox Code Playgroud)

我也尝试过'scale':[5, 5]基于我发现的其他一些样本的事情.这些工作都没有.

以下工作正常,但不涉及动画:

set.mouseover(function() {
    this.scale(2, 2);
});
Run Code Online (Sandbox Code Playgroud)

我正在使用版本2.0.1的raphael.有关如何使其工作的任何建议?

编辑:示例和我的测试之间的差异可能是由于Raphael 2的更新,我正在研究这些变化.

javascript raphael

4
推荐指数
1
解决办法
2839
查看次数