我重建我的延迟加载模块接受asyncronus请求,但我有一个很大的问题:
IE浏览器不支持script.onload/onerror的!
旧的脚本并在全球范围EVAL与AJAX同步调用读取目标脚本源,它工作得很好,它是跨浏览器,我可以把它异步编辑1个变量,但它是非常棘手的调试(所有的源代码在一个单一的执行线和浏览器不给予有关的错误太多的相关信息,将代码通过线与正则表达式是不可能的,因为JS有无限的深度和正则表达式块根本不擅长这一点).
这是我用来创建脚本的代码(经典):
var script = document.createElement('script');
script.type = 'text/javascript';
script.src =name;
script.name =name;
script.async = true;
script.onload=<my_onload_code>;
script.onerror=<my_onerror_code>;
Run Code Online (Sandbox Code Playgroud)
它不适用于IE,因为它不支持onload和onerror与脚本;
下面的代码是一个修复程序,但仅在脚本不是异步时才有效
if(script.onreadystatechange!==undefined)//only IE T_T
script.onreadystatechange = function() {
if (script.readyState == 'loaded')//ERROR LOADING
<my_onerror_code>;
else
if(script.readyState == 'complete')//loaded
<my_onload_code>;
};
Run Code Online (Sandbox Code Playgroud)
我可以每X毫秒测试一次,直到脚本加载,但这是一个丑陋的解决方案,我想避免它.
编辑:这是我试图检查每个X ms的代码,如果脚本加载,它不是那么糟糕,它比ajax更好;问题是,我不知道脚本是否加载成功或错误( onload或onerror).
var script = document.createElement('script');
script.type = 'text/javascript';
script.src =name;
script.name =name;
script.async = true;
script.onload=function(){Lazy_loader.onload(this);};
script.onerror=function(){Lazy_loader.onerror(this);};
if(script.onreadystatechange!==undefined){//ie fix T_T
script.timer=setInterval(function(){
if (script.readyState == 'loaded' || script.readyState == 'complete')}//ERROR LOADING
if(LOADED???)//loaded
Lazy_loader.onload(script);
else
Lazy_loader.onerror(script);
clearInterval(script.timer); …Run Code Online (Sandbox Code Playgroud) 我知道模板类的普通成员函数将在第一次使用时被实例化.但是这不能用于虚拟成员函数,因为它可以通过基类指针访问.这意味着只要实例化tmeplate类,就会实例化虚拟成员函数?如果不是的话?
我使用Zend Framework和Mysql有一个奇怪的问题.我生成了一个查询:
SELECT events.idUser, szForename, szLastname, readers.szName, idZoneFrom, events.dtTime FROM events, users, readers WHERE events.idUser = users.idUser AND events.idReader = readers.idReader AND dtTime >= '2010:02:15 0:00:00' AND dtTime < '2010:02:16 0:00:00' ORDER BY dtTime
Run Code Online (Sandbox Code Playgroud)
如果我在某些控制台(如pma,navicat或shell客户端)中运行它,但是当我尝试使用通过推荐扩展Zend_Db_Table的模型运行它时查询工作正常
$arResult = $this->getDefaultAdapter()->query($szQuery)->fetchAll();
Run Code Online (Sandbox Code Playgroud)
它与1064错误:
enter code here
An error occurred
Application error
Exception information:
Message: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to …Run Code Online (Sandbox Code Playgroud) 我正在使用带有capistrano的git.
我在我的本地计算机上的文件夹中初始化了我的项目:
git init
Run Code Online (Sandbox Code Playgroud)
然后我将项目推送到服务器目录,然后调用cap deploy
部署工作,除了它将本地.git文件夹结构以及我的.gitignore和Capfile上传到可公开访问的文件夹.
这是我的gitignore文件:
.DS_Store
uploads/**/*
Capfile
.gitignore
.git/**/*
Run Code Online (Sandbox Code Playgroud)
这似乎没有办法.有帮助吗?
谢谢!
编辑:更新的.gitignore文件:
将部署策略更改为导出:
set :deploy_via, :export
Run Code Online (Sandbox Code Playgroud)
这适用于忽略.git文件夹,但下面看到的.gitignore文件的内容仍然没有考虑在内
.DS_Store
includes/php/config.php
/uploads
Capfile
.git
Run Code Online (Sandbox Code Playgroud)
编辑2(解决方案):编辑1与以下组合完成技巧.在.gitignore文件中列出之前已添加的文件将不断上传.说我有以下.gitignore文件.
.DS_Store
includes/php/config.php
Run Code Online (Sandbox Code Playgroud)
然后我运行了以下命令:
git add .
git commit -a -m 'some commit'
Run Code Online (Sandbox Code Playgroud)
然后我决定添加到我的.gitignore文件,所以它现在看起来像这样:
.DS_Store
includes/php/config.php
Capfile
Run Code Online (Sandbox Code Playgroud)
然后,我跑了:
git add .
git commit -a -m 'another commit'
Run Code Online (Sandbox Code Playgroud)
现在我已经看到.DS_Store并且includes/php/config.php没有上传,但是Capfile有...这就是我原来的问题中发生的事情.原因是:我认为仅在添加(即git add .)时才会考虑.gitignore文件.如果我已经添加了文件,然后将它们放在.gitignore文件中,它们就已经被添加到项目中了.我需要使用该git rm命令删除它们.我刚刚用一个新的.git repo重新启动并解决了这个问题,但是你没必要 - 你可以删除你已添加但现在想要忽略的任何文件git rm.
我选择了帮助我得出正确结论的答案,尽管上面详细介绍了完整的解决方案.
我有这个简单的代码:
#include <iostream>
#include <fstream>
using namespace std;
int main(void)
{
ifstream in("file.txt");
string line;
while (getline(in, line))
{
cout << line << " starts with char: " << line.at(0) << " " << (int) line.at(0) << endl;
}
in.close();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
打印:
0.000000 0.000000 0.010909 0.200000 starts with char: 32
A 0.023636 0.000000 0.014545 0.200000 starts with char: A 65
B 0.050909 0.000000 0.014545 0.200000 starts with char: B 66
C 0.078182 0.000000 0.014545 0.200000 starts with char: …Run Code Online (Sandbox Code Playgroud) 我是Java的新手,我在NetBeans上编码.问题是每当我禁用一个控件,即jmenu.setEnabled(false)时,它仍会触发事件!哇靠!如何!:P
我该怎样预防呢?
我有一个在Manifest中声明的ContentProvider,什么时候才真正创建?应用程序启动但在启动第一个活动之前?第一次查询/更新/插入完成后?什么时候 ?
Google Checkout订单页面允许您以CSV格式下载订单数据.有一个复选框,允许您指定CSV应包含额外数据(买方的名称和地址,产品详细信息).
Google Checkout 订单报告API提供了一种以编程方式获取CSV订单数据的方法.但是,似乎不可能以扩展格式获取数据.我错过了什么吗?有没有办法指定您想要完整的数据?
默认数据非常缺乏信息.
我正在使用var abc = new { id = 0 };我的C#代码而不知道它究竟是什么类型!
是简单地称为对象?它是一种特殊类型的物体吗?
我想知道因为我不知道如何为这种对象添加字段
快速示例:我有var abc = new { id = 0 };,我想添加到abc该字段name = "david"
给出一个python类class Student():和一个列表names = []; 然后我想创建几个实例Student()并将它们添加到列表中names,
names = [] # For storing the student instances
class Student():
def __init__(self, score, gender):
self.score = score
self.gender = gender
Run Code Online (Sandbox Code Playgroud)
现在我想查看所有男学生的分数,我可以这样做吗?
scores = []
for i in names:
if i.gender == "Male":
scores.append(i.score)
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何创建一个列表,可以(如果可以通过任何语句完成)存储实例Student?或者更确切地说,当我写作时,我names = []怎么能说出每个元素names都是一个实例,Student这样我可以使用这个元素的attributs,尽管python是弱类型的?我希望我明白了;)
我可以这样写:
for i in range(len(names)):
student = Student()
student = names[i]
if student.gender == "Male":
# Whatever
Run Code Online (Sandbox Code Playgroud)
我猜不会...
c++ ×2
php ×2
android ×1
asynchronous ×1
c# ×1
capistrano ×1
csv ×1
deployment ×1
encoding ×1
git ×1
java ×1
javascript ×1
lazy-loading ×1
list ×1
mysql ×1
oop ×1
python ×1
string ×1
swing ×1
templates ×1
zend-db ×1