小编Tri*_*Nhu的帖子

使用React JS无限滚动

我正在寻找使用React实现无限滚动的方法.我遇到了react-infinite-scroll并发现它效率低,因为它只是向DOM添加节点而不删除它们.有没有经过验证的React解决方案,它将在DOM中添加,删除和维护恒定数量的节点.

这是jsfiddle问题.在这个问题中,我希望一次只有DOM中的50个元素.当用户向上和向下滚动时,应加载和删除其他内容.我们已经开始使用React,因为它的优化算法.现在我找不到解决这个问题的方法.我遇到过airbnb无限的js.但是它是用Jquery实现的.要使用这个airbnb无限滚动,我必须松开我不想做的React优化.

示例代码我想添加滚动是(这里我正在加载所有项目.我的目标是一次只加载50个项目)

/** @jsx React.DOM */

var Hello = React.createClass({
    render: function() {
        return (<li>Hello {this.props.name}</li>);
    }
});

var HelloList = React.createClass({ 
     getInitialState: function() {                            
         var numbers =  [];
         for(var i=1;i<10000;i++){
             numbers.push(i);
         }
         return {data:numbers};
     },

    render: function(){
       var response =  this.state.data.map(function(contact){          
          return (<Hello name="World"></Hello>);
        });

        return (<ul>{response}</ul>)
    }
});

React.renderComponent(<HelloList/>, document.getElementById('content'));
Run Code Online (Sandbox Code Playgroud)

寻求帮助......

html javascript infinite-scroll reactjs

85
推荐指数
2
解决办法
7万
查看次数

使用Dreamhost上的virtualenv更新新的Django和Python 2.7.*(带乘客)

Dreamhost是小项目的好主人.它也是Django友好的托管.除了python和Django版本之外的一切都有点过时了.好吧,这是一整天的工作来弄清楚如何在dreamhost上更新Python 2.7.3,Django 1.4并且我真的想与找到它的人分享

python django passenger dreamhost

29
推荐指数
1
解决办法
6443
查看次数

检测用户的jquery事件触发器或代码调用

我有一些window.onscroll事件

$(window).scroll(function(e){
    //My Stuff
});
Run Code Online (Sandbox Code Playgroud)

但在我的代码中,我将动画滚动调用到某些地方

$('html, body').stop().animate({
   scrollTop:555
}, 1000);
Run Code Online (Sandbox Code Playgroud)

所以我如何检测页面是由用户滚动或由我的代码调用.我当前的解决方案是animate在我的代码调用之前放置一个标志,然后清除它,但这不是一个聪明的解决方案.我也读过关于检测的信息e.which,e.originalEvent但它不起作用.我想你的专家在这里有一个很好的解决方案.

javascript jquery

10
推荐指数
1
解决办法
8562
查看次数

React createElement vs cloneElement

如果使用cloneElement(在现有元素实例上)或createElement(在react类上),哪一个在性能方面更好?

有时克隆某些东西比创建新实例更快.请告诉我.谢谢

javascript clone reactjs

6
推荐指数
1
解决办法
5399
查看次数

Django 使用整数字段作为外键字段

为了支持旧的(遗留)数据库,我们必须创建一个使用整数字段作为用户表的外键的表:这就是我们的模型的样子:

class UserHistory():
    user_id = models.IntegerField(null=True, blank=True)
    # ..... (other fields) .....
Run Code Online (Sandbox Code Playgroud)

问题是用户表中可能存在也可能不存在用户 ID。有什么方法可以将该 user_id 字段视为用户 talbe 的外键(当它存在时)?所以我可以在 django admin 或其他地方显示,而不仅仅是 ID。

python django orm django-models django-admin

6
推荐指数
1
解决办法
3064
查看次数

IIS上的Django:PyISAPIe或FastCGI或WSGI或Helicon Zoo或DjangoWindowsTools

我目前有一个运行iis 7.5的Windows 2008网络服务器.我已成功为Python 2.7.4构建PyISAPIe 1.1.0.Django已经部署,它可以快速运行.但据我所知,PyISAPIe在某种程度上是老式的,最后一个版本是在2010年发布的.我发现有Helicon Zoo(WebPI打包运行WSGI桥)和DjangoWindowsTools(使用Fascgi自动部署).所以我想问你的建议:哪种解决方案最适合IIS上的django/python?

python django iis-7 windows-server-2008-r2

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

Python字典替换密钥中的空格

我有一个字符串和一个字典,我必须替换该文本中每个出现的dict键.

text = 'I have a smartphone and a Smart TV'
dict = {
    'smartphone': 'toy',
    'smart tv': 'junk'
}
Run Code Online (Sandbox Code Playgroud)

如果键中没有空格,我会将文本分成单词并逐个与dict进行比较.看起来像O(n).但是现在钥匙里面有空间,所以事情更加复杂.请建议我这样做的好方法,请注意密钥可能与文本不匹配.

更新

我已经想到了这个解决方案,但效率不高.O(m*n)或更多......

for k,v in dict.iteritems():
    text = text.replace(k,v) #or regex...
Run Code Online (Sandbox Code Playgroud)

python algorithm dictionary replace textmatching

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

单个表或多个表用于层次结构数据

我必须实现以下层次结构数据:

Category (id, name, url)
SubCategory (id, name, url)
SubSubCategory (id, name, url)
Run Code Online (Sandbox Code Playgroud)

注意,这是多对多关系。EG:每个节点可以有多个父级或子级。没有流通关系(感谢上帝)。只有某些SubSubCategory可以属于多个SubCategory。

我的实现:为此,我使用单个表

Cat (id, type(category, subcategory, subsubcategory), name, url)
CatRelation (id, parent_id, child_id, pre_calculated_index for tree retrieval)
Run Code Online (Sandbox Code Playgroud)

pre_calculated_index可以左,右实施改性序树遍历的[1 2]或在我的实现的路径。这pre_calculated_index是在将子级添加到一个节点时计算出来的,这样,当您检索一棵树时,只需要按此字段排序即可,而不必进行递归查询。

无论如何,我的老板认为这种实现方式并不理想。他建议为每种类型的类别都拥有每个表,然后有一个数据透视表来链接它们:

Category (id, name, url)
SubCategory (id, name, url)
SubSubCategory (id, name, url)
Category_SubCategory(category_id, sub_category_id)
SubCategory_SubSubCategory(sub_category_id, sub_sub_category_id)
Run Code Online (Sandbox Code Playgroud)

检索树时,只需联接所有表。他的论据是,稍后将某些属性添加到不需要的任何类别类型时,在单表实现中将字段设为null。并且pre_calculated_index可能会出错,因为它是用代码计算的。

我应该跟随哪一个?哪个有更好的表现?

我使用django和postgreSQL。

PS:有关pre_calculated_index实现的更多详细信息:我在CatRelation中添加了一个路径(字符串,唯一,索引)值(而不是每个节点左右):根节点将具有“ path ='”。子节点添加到CatRelation后,将具有path = parent_path +'。因此,当您按此路径排序时,将按树顺序获得所有内容。例子:

Cat

| id | name       | url |
|----|------------|-----|
| 1  | …
Run Code Online (Sandbox Code Playgroud)

database django postgresql database-design

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

如何迭代Django中的所有设置?

如何迭代所有Django设置?我需要阅读所有开头的设置MYAPP_.

我试过这样做:

from django.conf import settings

for setting in settings:
    print setting
Run Code Online (Sandbox Code Playgroud)

...但我得到以下异常:

TypeError: 'LazySettings' object is not iterable
Run Code Online (Sandbox Code Playgroud)

有关如何实现这一目标的任何想法?

python django django-settings

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

奇怪的 Scala 元组行为

我注意到 Scala 中的这种行为

val list = List[(Int, Int)]()
val set = HashSet[(Int, Int)]()

scala> list :+ (1, 2)
res30: List[(Int, Int)] = List((1,2))

scala> list :+ (1 -> 2)
res31: List[(Int, Int)] = List((1,2))

scala> list :+ 1 -> 2
res32: List[(Int, Int)] = List((1,2))

//Work
// But the same for set not work
set += (1, 2)
<console>:14: error: type mismatch;
 found   : Int(2)
 required: (Int, Int)
       set += (1, 2)

//Ok may be += in set mean add …
Run Code Online (Sandbox Code Playgroud)

scala

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