это то, что я нашел:
#!/usr/bin/env node
require(__dirname+"/processor-usage.js").startWatching();
var shouldRun = true;
var desiredLoadFactor = .5;
function blockCpuFor(ms) {
var now = new Date().getTime();
var result = 0
while(shouldRun) {
result += Math.random() * Math.random();
if (new Date().getTime() > now +ms)
return;
}
}
function start() {
shouldRun = true;
blockCpuFor(1000*desiredLoadFactor);
setTimeout(start, 1000* (1 - desiredLoadFactor));
}
setInterval(function() {
console.log("current process cpu usage: "+(global.processCpuUsage || 0)+"%");}
, 1000);
if (process.argv[2]) {
var value = parseFloat(process.argv[2]);
if (value < 0 || value > 1) {
console.log("please give desired load value as a range [0..1]");
process.exit(-1);
} else {
desiredLoadFactor = value;
}
}
start();
на http://blackholethought.blogspot.de/2012/08/measuring-cpu-usage-of-nodejs-from.html
Вы можете использовать частичное представление в ASP.NET MVC для получения аналогичного поведения. Частичное представление все еще может создавать HTML на сервере, и вам просто нужно вставить HTML в нужное место (фактически, помощники MVC Ajax могут настроить это для вас, если вы хотите включить библиотеки MSFT Ajax).
В основном представлении вы можете использовать форму Ajax.Begin для настройки асинхронного запроса.
<% using (Ajax.BeginForm("Index", "Movie",
new AjaxOptions {
OnFailure="searchFailed",
HttpMethod="GET",
UpdateTargetId="movieTable",
}))
{ %>
<input id="searchBox" type="text" name="query" />
<input type="submit" value="Search" />
<% } %>
<div id="movieTable">
<% Html.RenderPartial("_MovieTable", Model); %>
</div>
Частичное представление инкапсулирует раздел страницы, который вы хотите обновить.
<%@ Control Language="C#" Inherits="ViewUserControl<IEnumerable<Movie>>" %>
<table>
<tr>
<th>
Title
</th>
<th>
ReleaseDate
</th>
</tr>
<% foreach (var item in Model)
{ %>
<tr>
<td>
<%= Html.Encode(item.Title) %>
</td>
<td>
<%= Html.Encode(item.ReleaseDate.Year) %>
</td>
</tr>
<% } %>
</table>
Затем настройте действие вашего контроллера для обработки обоих случаев. Результат частичного просмотра хорошо работает с запросом asych.
public ActionResult Index(string query)
{
var movies = ...
if (Request.IsAjaxRequest())
{
return PartialView("_MovieTable", movies);
}
return View("Index", movies);
}
Надеюсь, что это поможет.
<%@ Control Language="C#" Inherits="ViewUserControl<IEnumerable<Movie>>" %>
<table>
<tr>
<th>
Title
</th>
<th>
ReleaseDate
</th>
</tr>
<% foreach (var item in Model)
{ %>
<tr>
<td>
<%= Html.Encode(item.Title) %>
</td>
<td>
<%= Html.Encode(item.ReleaseDate.Year) %>
</td>
</tr>
<% } %>
</table>
Затем настройте действие вашего контроллера для обработки обоих случаев. Результат частичного просмотра хорошо работает с запросом asych.
public ActionResult Index(string query)
{
var movies = ...
if (Request.IsAjaxRequest())
{
return PartialView("_MovieTable", movies);
}
return View("Index", movies);
}
Надеюсь, что это поможет.
<%@ Control Language="C#" Inherits="ViewUserControl<IEnumerable<Movie>>" %>
<table>
<tr>
<th>
Title
</th>
<th>
ReleaseDate
</th>
</tr>
<% foreach (var item in Model)
{ %>
<tr>
<td>
<%= Html.Encode(item.Title) %>
</td>
<td>
<%= Html.Encode(item.ReleaseDate.Year) %>
</td>
</tr>
<% } %>
</table>
Затем настройте действие вашего контроллера для обработки обоих случаев. Результат частичного просмотра хорошо работает с запросом asych.
public ActionResult Index(string query)
{
var movies = ...
if (Request.IsAjaxRequest())
{
return PartialView("_MovieTable", movies);
}
return View("Index", movies);
}
Надеюсь, что это поможет.
Если вы новичок в asp.mvc, я рекомендую вам загрузить пример приложения NerdDinner ( исходный код ). Там вы найдете достаточно информации, чтобы начать эффективно работать с mvc. У них также есть примеры ajax. Вы обнаружите, что вам не нужна, и обновите панель.
По сути, «традиционные» серверные элементы управления (включая ASP.NET AJAX) не будут работать с MVC из коробки ... жизненный цикл страницы сильно отличается. С помощью MVC вы визуализируете свой поток Html гораздо более непосредственно, чем абстрагированный / псевдосохраняющий блок, в который вас обертывает WebForms.
Чтобы «смоделировать» UpdatePanel в MVC, вы можете подумать о заполнении HTML-код прост: Данные для «панели» находятся в формате JSON - MVC может сделать это автоматически, см. NerdDinner и jQuery / javascript тоже Конечно, UpdatePanel можно использовать в гораздо более сложных сценариях, чем этот (он может содержать INPUTS, поддерживает ViewState и триггеры на разных панелях и другие элементы управления). Если вам нужна такая сложность в вашем приложении MVC, боюсь, вы можете заняться какой-то специальной разработкой ...
<input name="query" id="query" value="dollar" />
<input type="button" onclick="search();" value="search" />
SearchController. cs
public ActionResult SearchByLocation(float latitude, float longitude) {
// code removed for clarity ...
return Json(jsonDinners.ToList());
}
<script type="text/javascript" src="javascript/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
// bit of jquery help
// http://shashankshetty.wordpress.com/2009/03/04/using-jsonresult-with-jquery-in-aspnet-mvc/
function search()
{
var q = $('#query').attr("value")
$('#results').html(""); // clear previous
var u = "http://"+location.host+"/SearchJson.aspx?searchfor=" + q;
$("#contentLoading").css('visibility',''); // from tinisles.blogspot.com
$.getJSON(u,
function(data){
$.each(data, function(i,result){
$("<div/>").html('<a href="'+ result.url+'">'+result.name +'</a>'
+'<br />'+ result.description
+'<br /><span class="little">'+ result.url +' - '
+ result.size +' bytes - '
+ result.date +'</span>').appendTo("#results");
});
$("#contentLoading").css('visibility','hidden');
});
}
</script>