小编Neo*_*ang的帖子

为什么jquery发送GET请求动态加载的脚本标记?

我使用jquery的ajax方法从服务器动态加载一些html片段,并将片段插入div.在代码片段中有一些<script>外部脚本标签.

我在制作ajax请求时在Chrome工具栏中查看了网络活动,并发现脚本标记的GET请求附加了类似的内容?_=1234567890.我还注意到GET请求的发起者是jquery.我知道jquery为AJAX请求执行此操作以避免使用缓存版本,但我希望缓存脚本.

让我感到惊讶的是,<script>标签是由jquery用ajax获取的.将<script>标记插入DOM时,浏览器是否应负责加载和执行标记?为什么jQuery在这里采取行动?

如果我跳过jquery并使用普通的js将<script>标签附加到DOM,浏览器将加载并解析它,对吧?为什么浏览器不执行此操作并让jquery接管?

==============代码=============

用于加载html代码段的代码:

var url = "/"+modulename+"/settings/"+this.selectedProduct.id;
$.get(url, null, function(snippet){
  $("div#content").empty().html(snippet);
}
Run Code Online (Sandbox Code Playgroud)

html片段:

<script type='text/javascript' src="http://www.staticcdn.org/somelib.js"></script>

<script>
  <!--some html rendering code that depends on somelib-->
</script>
Run Code Online (Sandbox Code Playgroud)

ajax jquery http web

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

如果我担心代码安全,我应该只在服务器上部署.pyc文件吗?

我想将Django应用程序部署到云计算环境,但我担心源代码安全性.我可以只在那里部署已编译的.pyc文件吗?根据官方python doc,pyc文件"适度难以进行逆向工程".

采用这种方法有哪些优缺点?这是标准做法吗?

我没有使用AWS,我只想说我在一个根本不信任云计算的国家......

python cloud django wsgi

5
推荐指数
2
解决办法
5008
查看次数

使用 Redis 与 memcached+db 作为 Django 会话系统的优缺点?

Django 的内置cached_db 会话允许我使用memcached 来存储会话数据,并写入数据库以实现持久化。

虽然有些应用程序使用 Redis 作为会话存储(例如 Instagram)。

这些解决方案的优缺点是什么?

ps我不是问memcached和redis的比较,这个问题是Memcached vs. Redis?已经提供了非常好的答案。我问的是在会话系统的情况下哪一个更好。

python django memcached redis web

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

如何在启用缓存时连续部署Web应用程序?

在我们的Web应用程序中,我们有一个包含许多组件的Web页面,每个组件都使用来自DB的数据进行渲染,服务器端缓存用于存储生成的组件以供将来请求使用.我们还为整个页面维护了一个全局"最后修改"的时间戳,这是此Web上任何数据(在数据库中)的最后一次更改,如果浏览器缓存具有新版本,我们将返回304 HTTP响应.

总之,我们使用服务器端缓存和客户端缓存来提高性能.

在我们考虑部署新代码之前,这一切都很好.当部署新代码(比如html)时,不仅客户端缓存无效,还必须清除服务器端缓存.我们必须将最后修改的时间设置为代码部署时间,并清除服务器端缓存中的所有内容.如果我们定期部署代码,这是不太理想的.由于页面数据库中的数据不会定期更改,因此我们希望缓存能够长时间运行.但是部署新代码却违背了我们的目的.

在这种情况下我们该怎么做?这里有"行业最佳实践"吗?

deployment continuous-integration memcached caching web

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

我应该将“初始化代码”放在 Django 应用程序中的什么位置?

我希望我的 Django 应用程序中的一些代码在服务器启动时只执行一次,而不是每个请求。

具体来说,我想将一些数据库表加载到内存中。这些表包含一些不会随请求更改的“元数据”。像这样:

ProductTypesData = None;
def loadProductTypesData():
     productTypes = ProductType.objects.all();
     for ptype in productTypes:
         ptype_data = {
             "id":ptype.id,
             "name": ptype.name,
             "description":ptype.desc
         };
         ProductTypesData.append(ptype_data);
loadProductTypesData();
Run Code Online (Sandbox Code Playgroud)

我应该把这段代码放在哪里?其他关于django初始化的Q/A建议放在urls.py中。但是在 urls.py 中导入模型对我来说似乎不合逻辑。

我可以将代码放在models.py中吗?它是否只执行一次(如果在 django start 上执行是可以接受的)?

python django web

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

是否有任何数据库索引可以提高'like%keyword%'查询的性能?

我知道对文本字段进行索引可以帮助进行搜索like 'keyword%'.

但是,是否有任何跨数据库索引可以改善全文搜索like '%keyword%'

通常,对于少于1000个字符的文本字段,like %keyword%查询的性能何时变得对Web请求不可接受?说当表达到10K行?

sql database web sql-like

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

python的随机数生成是否容易重现?

我在标准库中阅读python的随机模块.令我惊讶的是,当我设置种子并产生一些随机数时:

random.seed(1)
for i in range(5):
    print random.random()
Run Code Online (Sandbox Code Playgroud)

产生的数字与文章中的样本完全相同.我认为可以肯定地说,当种子设置时,算法是确定性的.

当种子未设置时,标准库种子用time.time().现在假设一个在线服务用于random.random()生成验证码,黑客可以使用相同的随机生成器轻松地重现验证码吗?

  1. 让我们假设黑客知道将随机数转换为验证码的算法.否则,似乎很不可能.
  2. 由于在导入模块时调用random.seed(),我假设对于Web应用程序,用作种子的时间大约是发送请求的时间(在几秒钟内),因此不难进行校准几次尝试?

我是否担心太多,或者这是一个真正的漏洞?

python security random web

5
推荐指数
3
解决办法
4353
查看次数

如何更新AWS自动缩放启动的新实例?

我们使用AWS cloudformation服务来初始化我们的堆栈,并设置自动扩展服务以在负载上升时启动新的应用服务器.

我的理解是Auto Scaling只能将预定义的AMI作为新实例启动.这些实例可能与其他正在运行的实例不同,因为我们可能已更新在这些实例上部署的包/源代码.

如何使新实例更新?我是否应该在每次向正在运行的实例部署新内容时更新AMI?或者无论如何在自动缩放时触发新实例(Opsworks)上的自动部署?

我是AWS新手,所以请原谅我,如果我的问题很简陋的话.

cloud amazon-web-services autoscaling aws-opsworks

5
推荐指数
2
解决办法
1214
查看次数

TCP连接Recv-Q高是什么原因?

在我的应用程序中,我发现send()TCP 连接上的调用偶尔会被阻止。每当这种情况发生时,TCP 连接的 Recv-Q 从netstat输出中会非常高:

tcp   314238      0 10.8.8.21:47302         10.8.8.11:5672          ESTABLISHED
tcp   313276      0 10.8.8.21:47294         10.8.8.11:5672          ESTABLISHED
Run Code Online (Sandbox Code Playgroud)

什么可能导致 TCP 连接的接收缓冲区被填满?它如何导致我的send()呼叫无限期挂起?

ps 这可能相关,也可能不相关,这个 TCP 连接位于我的应用程序和 RabbitMQ 服务器之间。

sockets netstat tcp amqp

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

在 Golang 中导入模块时如何捕获错误?

在 golang 中,当我导入一个模块时,它的 init() 被执行(在我假设的 main() 之前?),这个函数中可能会产生一些错误。如何捕获这些错误并在我自己的代码中处理它们?

import go

4
推荐指数
2
解决办法
1535
查看次数