我正在使用ASP.NET MVC 4应用程序.
家庭控制器的构造函数参数化为2参数(Iservice1 service1,Iservice2 service2)并非所有代码路径都使用任何Service(service1,service2),只在某些代码路径中我需要service1 instance/object或service2 instance/object.
我不想使用container.Resolve < <Lazy<IService1>>();
从这个链接(http://msdn.microsoft.com/en-us/library/dn178463(v=pandp.30).aspx)我明白unity.mvc 4使用unity 3,它具有Lazy loading支持,但是如何在ASP.NET MVC 4中执行此操作.
asp.net-mvc lazy-loading inversion-of-control unity-container deferred-loading
我希望我的所有存储库都列在一个服务提供商中,但我不希望它们一次全部加载...
考虑以下服务提供商:
class RepositoryServiceProvider extends ServiceProvider {
protected $defer = true;
public function register()
{
$this->app->bind(
'App\Repositories\Contracts\FooRepository',
'App\Repositories\SQL\FooSQLRepository');
$this->app->bind(
'App\Repositories\Contracts\BarRepository',
'App\Repositories\SQL\BarSQLRepository');
// and more to be added later...
}
public function provides()
{
// Will it defer and load all these at once? Or only the one(s) needed?
return ['App\Repositories\Contracts\FooRepository',
'App\Repositories\Contracts\BarRepository'];
}
}
Run Code Online (Sandbox Code Playgroud)
根据 Laravel 文档,我可以将绑定的注册推迟到需要时。但是,当我在单个服务提供者中添加多个绑定时,这是否有效?具体来说,我的意思是,它会推迟然后加载所有还是只加载需要的?
我有几个表,包括多对多关系中的"组合".我想现在进行插入操作.
我在linq2sql中听说过DeferredLoadingEnabled,我知道它与这个主题有关,但我不太清楚它是如何工作的?
例如
[ClientTable]: ClientId, ClientName, Phone, Age
[CityTable]: CityID, CityName, Country
[ClientCityTable]: ClientCityID, ClientID, CityID
Run Code Online (Sandbox Code Playgroud)
有人可以在这个简单的例子中展示它还是提供一些不错的链接?
我使用谷歌代码来推迟加载 javascript(谷歌页面)
但我有一些内联 javascript,例如:
<script type="text/javascript">
$(function () {
alert("please work");
});
</script>
Run Code Online (Sandbox Code Playgroud)
这给了我:
未捕获的 ReferenceError: $ 未定义
我想我需要一些函数,它是在加载 jQuery 并初始化我的内联 javascripts 之后触发的。但如果有另一种方式,我会很高兴。
编辑:
你们中的一些人完全没有话题。Mahesh Sapkal 很接近。
使用此代码我没有错误,但仍然无法正常工作
<head>
<script type="text/javascript">
var MhInit = NULL;
// Add a script element as a child of the body
function downloadJSAtOnload() {
var element = document.createElement("script");
MhInit = element.src = "my_packed_scripts.js";
document.body.appendChild(element);
}
// Check for browser support of event handling capability
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", …Run Code Online (Sandbox Code Playgroud) TL; DR 检查最后一段
我的方案: 我有以下文件:
</head>)</body>)</body>在vendor.js之后的html中添加)HTML Webpack插件正在我的html模板中添加以上文件。在这种情况下,首先,我的浏览器将无法发出下载请求vendor,app而必须等待样式表首先被下载。那很糟。其次,当脚本已经SSR呈现html时,我的脚本将不必要地停止DOM呈现第一幅画。
对于第二个,我将defer它解决它。但是首先,为什么defer在DOM构建中不需要脚本(只是功能)时,为什么我的脚本必须等待样式表下载,甚至包括那些脚本!
因此,我想将其放置deferred scripts在可能的head标记内,html webpack plugin但我想将其放置在style标记之前(对于外部样式表),以使浏览器可以并行请求这些脚本而不用等待而受益。
首先,您认为这是个好主意吗?(可能是因为浏览器只能具有有限的并行连接,所以,它可能会阻止下载图像等。或者可能是现代的浏览器在尝试使用html并请求延迟脚本时会自动执行此操作,但这只是最近的浏览器,并非它吗?)
其次,如何使用html webpack插件实现将延迟脚本放在样式标签之前? (我想特别知道这一点)
html javascript deferred-loading webpack html-webpack-plugin
假设我们有一个基本功能:
def basic(arg):
print arg
Run Code Online (Sandbox Code Playgroud)
我们需要推迟在另一个函数中对该函数的求值。我正在考虑两种可能的方法:
使用 lambda:
def another(arg):
return lambda: basic(arg)
Run Code Online (Sandbox Code Playgroud)使用 functools.partial
from functools import partial
def another(arg):
return partial(basic, arg)
Run Code Online (Sandbox Code Playgroud)首选哪种方法?为什么?还有另一种方法可以做到这一点吗?
javascript ×2
asp.net-mvc ×1
c# ×1
html ×1
jquery ×1
lambda ×1
laravel ×1
laravel-5 ×1
lazy-loading ×1
linq-to-sql ×1
many-to-many ×1
php ×1
python ×1
webpack ×1