小编alg*_*hms的帖子

Backbone.js - 如何处理"登录"?

嗨,我现在试图将我的脑袋包围在backbone.js上几天,但由于这是我的第一个MVC框架,所以很难.

我可以轻松地让我的Collections工作,从服务器等获取数据,但这一切都取决于每个API-Key的第一次"登录".我只是不知道如何使用良好的MVC方法对此进行建模.(顺便说一句:我不能使用路由器/控制器,因为它是Chrome扩展)

Flow看起来像这样:

  1. 开始扩展
  2. localStorage中是否有API密钥
  3. =>显示输入字段和保存按钮,将键保存到localStorage; =>继续申请:
  4. App ......

我能想到的唯一方法是将它们放在一个大视图中...但我想,因为我对此很新,所以肯定有一些更好的方法.

javascript backbone.js

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

缩进2个空格是否安全?

我知道"我应该如何缩进代码"的一般答案通常是"按照您的意愿行事,但与团队中的每个人一样",但在上一次我看到很多项目和平台都依赖于2空间缩进.

我只是想确保在缩进时获得"最好的帮助",并确保它具有前瞻性.考虑到兼容性等,稍后在项目中更改结构是一个相当大的问题.

现在大多数项目依赖于2个Spaces,4个SpacesTabs.


项目及其缩进:

  1. 标签
    • WordPress的
    • jQuery的
    • CakePHP的
    • 混帐
    • Linux内核(似乎不一致)
  2. 4个空格
    • Django的
    • Symfony的
    • 堆栈溢出
    • Zend框架
    • 雅虎
    • 的MacVim
    • Memcached的
  3. 2个空格
    • 谷歌
    • HTML5 Boilerplate
    • Ruby on Rails
    • Drupal的
    • Node.js的
    • Github上
    • 蓝图的CSS
    • 杰奇
    • 选择
    • Backbone.js的
    • Modernizr的
    • Scriptaculous的
    • Clojure的
    • Facebook(我认为)

问题是"社区"在哪里?2个空格还是4个空格?

我的猜测是2个空间,因为它表现在大公司和所有标准推动项目都在使用它.

您如何看待当前和未来的情况?适应2 Spaces缩进是否明智?

compatibility code-organization indentation

12
推荐指数
1
解决办法
4373
查看次数

为什么HTML5视频缓冲在Google Chrome中如此糟糕?

在YouTube上和最近在Coursera.org上观看HTML5视频时,我在Chrome中经历了大量"随机"缓冲停止.

问题是,使用像IE10或Firefox这样的浏览器,在观看HTML5视频时绝对没有问题.IE10似乎缓冲了整个视频.有没有办法为Chrome启用这种确切的行为?

browser video html5 google-chrome html5-video

10
推荐指数
0
解决办法
3865
查看次数

没有支持库的DrawerLayout用于MinSDK> = 15

为什么DrawerLayout仅在支持库中可用而不在标准API中?

我试图将它包含在minSDK 15的项目中,而Android Studio无法解析该类.使用v4支持库进行编译虽然做到了,但我想知道为什么会这样.

android drawerlayout

5
推荐指数
0
解决办法
825
查看次数

在替换 Fragment 的双重旋转后恢复 Fragment 时清空 savedInstanceState Bundle

让我们称它们为片段 A 和 B。片段 B 只是 A 的详细视图,单击片段 A 中的按钮即可替换片段 A。

替换代码:

    FragmentTransaction transaction = getFragmentManager().beginTransaction();
    transaction.replace(R.id.fragment_container, new DetailFragment());
    transaction.addToBackStack(null);
    transaction.commit();
Run Code Online (Sandbox Code Playgroud)

当我现在在 Fragment B 中旋转屏幕一次并按 Back 时,旧的 Fragment A 被恢复而没有任何问题(它在 onActivityCreated 中使用savedInstanceState Bundle 恢复它的状态)。

现在到有趣的部分......

当我在 Fragment B 中多次旋转屏幕并按 Back 时,我得到一个 NullPointerException,因为int[] data = savedInstanceState.getIntArray(STATE_DATA);inonActivityCreated返回 null。

我该如何解决这种行为?我想到的唯一另一种方法是通过永久存储(首选项或数据库),但这似乎非常不适合用例。

编辑/附加信息:包本身不为空,它只是空的

android android-lifecycle android-fragments

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

Webpack的旧式JS捆绑和最小化

我的项目有多个JS-Files,其中包含不进行任何导出的函数声明,并使用jquery,jquery-ui和其他需要全局访问的库。函数通常由html元素()中的内联JavaScript调用<button onclick="doStuff()">...

我现在的目标是将应用程序文件捆绑到bundle.js中,将供应商文件捆绑到vendor.js中。我已经设法完成了第二项任务,但是第一个任务没有按我希望的那样工作。

bundle.js文件应仅包含所有已串联+缩小的.js文件,然后在全局上下文中执行。

到目前为止我尝试过的是:

  • 脚本加载器(无缩小...)
  • exports-loader(上下文问题?)
  • 暴露加载器(实际上并没有在包之外全局暴露函数,需要导出)

为了便于讨论,我给出了一个简化的方案:

src / a.js

function doStuffA() {
    alert("A");
}
Run Code Online (Sandbox Code Playgroud)

src / b.js

function doStuffB() {
    alert("B");
}
Run Code Online (Sandbox Code Playgroud)

src / index.js

require("script!./a");
require("script!./b");
Run Code Online (Sandbox Code Playgroud)

index.html

<body>
    <button onclick="doStuffA()">A</button>
    <button onclick="doStuffB()">B</button>
    <script src="bundle.js"></script>
    <script src="vendor.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)

webpack.config.js

var webpack = require("webpack");

module.exports = {
  entry: {
    app: "./src/index.js",
    vendor: [
      "jquery",
      "jquery-ui"
    ]
  },
  output: {
    path: __dirname,
    filename: "bundle.js"
  },
  module: {
    loaders: [
      {test: /\.json$/, loader: "json"}, …
Run Code Online (Sandbox Code Playgroud)

javascript jquery bundle bundling-and-minification webpack

5
推荐指数
0
解决办法
795
查看次数

为什么我的MergeSort在Python中这么慢?

我在理解这种行为时遇到了一些麻烦.我正在使用timeit-module测量执行时间,并获得10000个周期的以下结果:

  • 合并:1.22722930395
  • 泡泡:0.810706578175
  • 选择:0.469924766812

这是我的MergeSort代码:

def mergeSort(array):
    if len(array) <= 1:
        return array
    else:
        left = array[:len(array)/2]
        right = array[len(array)/2:]
        return merge(mergeSort(left),mergeSort(right))

def merge(array1,array2):
    merged_array=[]
    while len(array1) > 0 or len(array2) > 0:

        if array2 and not array1:
            merged_array.append(array2.pop(0))

        elif (array1 and not array2) or array1[0] < array2[0]:
            merged_array.append(array1.pop(0))

        else:
            merged_array.append(array2.pop(0))
    return merged_array
Run Code Online (Sandbox Code Playgroud)

编辑:

我已经将列表操作更改为使用指针,我的测试现在可以使用0-1000的1000个随机数列表.(顺便说一句:我在这里改为10个周期)

结果:

  • 合并:0.0574434420723
  • 泡泡:1.74780097558
  • 选择:0.362952293025

这是我重写的合并定义:

def merge(array1, array2):
    merged_array = []
    pointer1, pointer2 = 0, 0
    while pointer1 < len(array1) and …
Run Code Online (Sandbox Code Playgroud)

python sorting algorithm mergesort

3
推荐指数
2
解决办法
4063
查看次数

像Google IO 2014 App中的活动之间的平滑过渡

如何实现活动之间的平滑过渡,例如它们是在Google IO 2014 App中实现的?

看起来好像他们只是替换Fragments而是从Code中看起来好像他们只是定期启动一个Activity?切换源代码(导航抽屉)可以在这里找到:BaseActivity.java

android transition android-activity

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