C# İçinde PDF İşlemeyi Geciktirmek İçin WaitFor Nasıl Kullanılır

Using the C# WaitFor Class to Delay PDF Rendering

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF'teki C# WaitFor sınıfı, geliştiricilerin bütün varlıklar, yazı tipleri ve JavaScript yüklendikten sonra PDF oluşturmayı ertelemelerine yardımcı olur. Bu, RenderDelay, NetworkIdle ve JavaScript tetikleyicileri gibi yöntemler kullanılarak eksik oluşturmalardan kaçınılmasını sağlar.

Hızlı Başlangıç: PDF Oluşturmayı Geliştirmek için WaitFor Kullanımı

IronPDF'in WaitFor özelliği, geliştiricilerin asenkron zamanlamayı yöneterek PDF oluşturmayı geliştirmelerine olanak tanır. RenderDelay gibi seçenekleri ayarlayarak, dönüşümden önce tüm varlıklar ve betiklerin yüklendiğinden emin olabilir, eksik PDF belgelerinin oluşmasını önleyebilirsiniz. Bu kılavuz, projelerinizde do<önetşleştir için WaitFor uygulamanın nasıl gerçekleştirileceğini gösterir.

new IronPdf.ChromePdfRenderer { RenderingOptions = { WaitFor = IronPdf.WaitFor.RenderDelay(3000) } }
    .RenderUrlAsPdf("https://example.com")
    .SaveAs("output.pdf");
new IronPdf.ChromePdfRenderer { RenderingOptions = { WaitFor = IronPdf.WaitFor.RenderDelay(3000) } }
    .RenderUrlAsPdf("https://example.com")
    .SaveAs("output.pdf");
$vbLabelText   $csharpLabel

WaitFor Sınıfı ve Seçenekleri Nedir?

En iyi performansla PDF'leri oluşturmak için WaitFor sınıfı, PDF oluşturma sürecini geliştirir. RenderOptions üzerinden WaitFor nesnesi birkaç seçenek sunar:

  • PageLoad: Bekleme olmadan varsayılan oluşturma.
  • RenderDelay: Öznel bir bekleme süresi ayarlar.
  • Fonts: Tüm yazı tipleri yüklenene kadar bekler.
  • JavaScript: JavaScript işlevi ile oluşturmayı tetikler.
  • HTML elements: Hedef elementler için element kimleri, adları, etiket adları ve sorgu seçiciler gibi belirli HTML elementlerini bekler.
  • NetworkIdle: Ağ bekleme durumu (0, 2 veya özel bir miktar) için bekler.

Bu özellikler, IronPDF ile HTML dizesini PDF'ye dönüştürürken, IronPDF ile HTML dosyalarını PDF'ye dönüştürürken ve IronPDF ile web URL'lerini PDF'ye dönüştürürken çalışır.

PDF'leri Beklemeden Hemen Nasıl İşlerim?

Varsayılan olarak, sayfa yüklenmesi bittiğinde hemen işleme başlar. PageLoad yöntemi normal oluşturma için çağrılması gerekmez. Bu yaklaşım, karmaşık JavaScript veya harici kaynaklar içermeyen basit HTML içerikleri için iyi çalışır.

:path=/static-assets/pdf/content-code-examples/how-to/waitfor-pageload.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render as soon as the page is loaded
renderer.RenderingOptions.WaitFor.PageLoad();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Render as soon as the page is loaded
renderer.RenderingOptions.WaitFor.PageLoad()

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
$vbLabelText   $csharpLabel

PDF İşlemeden Önce Özel Bir Gecikme Nasıl Ekleyebilirim?

PDF işlenmeden önce belirli bir gecikme gerekiyorsa, gecikme olarak keyfi bir milisaniye sayısı ayarlayabilirsiniz. Bu, özellikle JavaScript ağırlıklı içeriklerle çalışırken, belirli zaman gereksinimleri için esneklik sağlar.

Bu seçenek, eski RenderingOptions.RenderDelay özellik kullanımı ile aynı şekilde çalışır. Ancak, eski özellik kullanımdan kaldırılmıştır. Yeni API'yi kullanın: RenderingOptions.WaitFor.RenderDelay.

:path=/static-assets/pdf/content-code-examples/how-to/waitfor-delay-time.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render after 3000ms
renderer.RenderingOptions.WaitFor.RenderDelay(3000);

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

' Render after 3000ms
renderer.RenderingOptions.WaitFor.RenderDelay(3000)

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
$vbLabelText   $csharpLabel

Gecikme mekanizması, HTML'nizin animasyonlar, tembel yüklü içerik içerdiğinde veya dinamik içerik oluşturması için zamana ihtiyaç duyduğunda kullanışlıdır. Karmaşık işleme senaryoları için özelleştirilmiş işleme seçeneklerini keşfedin.

Tüm Fontların Yüklenmesini Beklemek için Nasıl Beklerim?

WaitFor sınıfındaki AllFontsLoaded yöntemi, PDF oluşturmayı Google Fonts gibi dış kaynaklardan tüm yazı tiplerini yükleyene kadar durdurur. Bu, sonunda PDF'nin gereken tüm fontları içermesini, belgenin amaçlanan tipografisini ve görsel görünümünü korumasını sağlar. Bu özellik, profesyonel PDF çıkış kalitesini muhafaza eder.

:path=/static-assets/pdf/content-code-examples/how-to/waitfor-all-fonts.cs
using IronPdf;

string htmlContent = @"
<!DOCTYPE html>
<html lang=""en"">
<head>
  <meta charset=""UTF-8"">
  <title>Test Registration of Extension</title>
  <!-- for google web fonts -->
  <link rel=""preconnect"" href=""https://fonts.googleapis.com"">
  <link rel=""preconnect"" href=""https://fonts.gstatic.com"" crossorigin>
  <link rel=""stylesheet"" href=""https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap"" >

  <style>
  /* for remote fonts */
  @font-face {
    font-family: 'CustomFont';
    src: url('https://stage.gradfinale.co.uk/tcpdf/fonts/avgr65wttf.ttf');
  }
  p#p1 { font-family: CustomFont, sans-serif; }

  /* for local fonts */
  @font-face {
    font-family: 'LocalCustomFont';
    src: local('Arial');
  }
  p#p3 { font-family: LocalCustomFont, sans-serif; }
  </style>
</head>
<body>
	<h1>This is Delayed Render Test!</h1>
	<p style=""font-family: Roboto, monospace;"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p>
	<p id=""p1"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p>
	<p id=""p3"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p>
</body>
</html>)";

ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.AllFontsLoaded(10000);

PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
Imports IronPdf

Dim htmlContent As String = "
<!DOCTYPE html>
<html lang=""en"">
<head>
  <meta charset=""UTF-8"">
  <title>Test Registration of Extension</title>
  <!-- for google web fonts -->
  <link rel=""preconnect"" href=""https://fonts.googleapis.com"">
  <link rel=""preconnect"" href=""https://fonts.gstatic.com"" crossorigin>
  <link rel=""stylesheet"" href=""https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap"" >

  <style>
  /* for remote fonts */
  @font-face {
    font-family: 'CustomFont';
    src: url('https://stage.gradfinale.co.uk/tcpdf/fonts/avgr65wttf.ttf');
  }
  p#p1 { font-family: CustomFont, sans-serif; }

  /* for local fonts */
  @font-face {
    font-family: 'LocalCustomFont';
    src: local('Arial');
  }
  p#p3 { font-family: LocalCustomFont, sans-serif; }
  </style>
</head>
<body>
	<h1>This is Delayed Render Test!</h1>
	<p style=""font-family: Roboto, monospace;"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p>
	<p id=""p1"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p>
	<p id=""p3"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p>
</body>
</html>"

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.AllFontsLoaded(10000)

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
$vbLabelText   $csharpLabel

PDF'lerde fontları yönetme, gömme ve alt kümeleme seçenekleriyle ilgili daha fazla bilgi için PDF'lerde fontları yönetme kılavuzunu kontrol edin.

Özel JavaScript Kullanarak PDF İşlemeyi Nasıl Tetiklerim?

İşleme süreci üzerinde daha fazla kontrol sağlamak için, PDF belgesi işlenmeden önce çalışacak özel bir JavaScript fonksiyonu belirleyebilirsiniz. Bu, işleme sürecini başlatmadan önce gerekli görevleri veya kontrolleri gerçekleştirme olanağı sağlayarak, işleme ne zaman tetikleneceğini kontrol etmenizi sağlar.

JavaScript'te, window.ironpdf.notifyRender() fonksiyonu oluşturma görevini tetikler. notifyRender() çağrıldıktan sonra, oluşturma süreci başlar. Fonksiyonu ne zaman çağıracağınızı kontrol edersiniz.

:path=/static-assets/pdf/content-code-examples/how-to/waitfor-javascript.cs
using IronPdf;

string html = @"<!DOCTYPE html>
<html>
<body>
<h1>Testing</h1>
<script type='text/javascript'>

// Set delay
setTimeout(function() {
    window.ironpdf.notifyRender();
}, 1000);

</script>
</body>
</html>";

ChromePdfRenderOptions renderingOptions = new ChromePdfRenderOptions();

// Set rendering to wait for the notifyRender function
renderingOptions.WaitFor.JavaScript(5000);

PdfDocument pdf = ChromePdfRenderer.StaticRenderHtmlAsPdf(html, renderingOptions);
JAVASCRIPT

Bu yaklaşım, AJAX istekleriyle birleştiğinde veya dinamik olarak oluşturulan içeriğin tamamen yüklendiğinden emin olunduğunda etkilidir. Gelişmiş JavaScript senaryoları için, PDF'lerde özel JavaScript çalıştırma kılavuzuna bakın.

Belirli HTML Elemanlarını Beklerken Nasıl Beklerim?

Bu seçenekle, işleme süreci belirli HTML elemanlarını, eleman ID'leri, adları, etiket adları ve sorgu seçiciler gibi hedef elemanları bekler. Bu özellik, Tek Sayfa Uygulamaları (SPA) veya eşzamansız yüklenen içeriklerle çalışırken yardımcı olur.

Bir Elemanı ID ile Nasıl Beklerim?

İşleme, aşağıdaki kod örneğinde belirli bir eleman ID'sini bekler.

:path=/static-assets/pdf/content-code-examples/how-to/waitfor-html-element-id.cs
using IronPdf;

string htmlContent = @"
<!DOCTYPE html>
<html lang=""en"">
<head>
  <meta charset=""UTF-8"">
  <title>Delayed render tests</title>
  <script type=""text/javascript"">
	setTimeout(function() {
		var h1Tag = document.createElement(""h1"");
		h1Tag.innerHTML = ""bla bla bla"";
		h1Tag.setAttribute(""id"", ""myid"");

        var block = document.querySelector(""div#x"");
		block.appendChild(h1Tag);
	}, 1000);
  </script>
</head>
<body>
	<h1>This is Delayed Render Test!</h1>
    <div id=""x""></div>
</body>
</html>";

ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.HtmlElementById("myid", 5000);

PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
Imports IronPdf

Dim htmlContent As String = "
<!DOCTYPE html>
<html lang=""en"">
<head>
  <meta charset=""UTF-8"">
  <title>Delayed render tests</title>
  <script type=""text/javascript"">
	setTimeout(function() {
		var h1Tag = document.createElement(""h1"");
		h1Tag.innerHTML = ""bla bla bla"";
		h1Tag.setAttribute(""id"", ""myid"");

        var block = document.querySelector(""div#x"");
		block.appendChild(h1Tag);
	}, 1000);
  </script>
</head>
<body>
	<h1>This is Delayed Render Test!</h1>
    <div id=""x""></div>
</body>
</html>"

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.HtmlElementById("myid", 5000)

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
$vbLabelText   $csharpLabel

Bir Elemanı Ad Özelliği ile Nasıl Beklerim?

İşleme süreci aşağıdaki kod örneğinde belirli bir eleman adını bekler.

:path=/static-assets/pdf/content-code-examples/how-to/waitfor-html-element-id.cs
using IronPdf;

string htmlContent = @"
<!DOCTYPE html>
<html lang=""en"">
<head>
  <meta charset=""UTF-8"">
  <title>Delayed render tests</title>
  <script type=""text/javascript"">
	setTimeout(function() {
		var h1Tag = document.createElement(""h1"");
		h1Tag.innerHTML = ""bla bla bla"";
		h1Tag.setAttribute(""id"", ""myid"");

        var block = document.querySelector(""div#x"");
		block.appendChild(h1Tag);
	}, 1000);
  </script>
</head>
<body>
	<h1>This is Delayed Render Test!</h1>
    <div id=""x""></div>
</body>
</html>";

ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.HtmlElementById("myid", 5000);

PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
Imports IronPdf

Dim htmlContent As String = "
<!DOCTYPE html>
<html lang=""en"">
<head>
  <meta charset=""UTF-8"">
  <title>Delayed render tests</title>
  <script type=""text/javascript"">
	setTimeout(function() {
		var h1Tag = document.createElement(""h1"");
		h1Tag.innerHTML = ""bla bla bla"";
		h1Tag.setAttribute(""id"", ""myid"");

        var block = document.querySelector(""div#x"");
		block.appendChild(h1Tag);
	}, 1000);
  </script>
</head>
<body>
	<h1>This is Delayed Render Test!</h1>
    <div id=""x""></div>
</body>
</html>"

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.HtmlElementById("myid", 5000)

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
$vbLabelText   $csharpLabel

Etiket Adı ile Elemanları Nasıl Beklerim?

İşleme süreci aşağıdaki kod örneğinde belirli bir eleman etiket adı için bekler.

:path=/static-assets/pdf/content-code-examples/how-to/waitfor-html-element-tag-name.cs
using IronPdf;

string htmlContent = @"
<!DOCTYPE html>
<html lang=""en"">
<head>
  <meta charset=""UTF-8"">
  <title>Delayed render tests</title>
  <script type=""text/javascript"">
	setTimeout(function() {
		var newElem = document.createElement(""h2"");
		newElem.innerHTML = ""bla bla bla"";

        var block = document.querySelector(""div#x"");
		block.appendChild(newElem);
	}, 1000);
  </script>
</head>
<body>
	<h1>This is Delayed Render Test!</h1>
    <div id=""x""></div>
</body>
</html>";

ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.HtmlElementByTagName("h2", 5000);

PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
Imports IronPdf

Dim htmlContent As String = "
<!DOCTYPE html>
<html lang=""en"">
<head>
  <meta charset=""UTF-8"">
  <title>Delayed render tests</title>
  <script type=""text/javascript"">
	setTimeout(function() {
		var newElem = document.createElement(""h2"");
		newElem.innerHTML = ""bla bla bla"";

        var block = document.querySelector(""div#x"");
		block.appendChild(newElem);
	}, 1000);
  </script>
</head>
<body>
	<h1>This is Delayed Render Test!</h1>
    <div id=""x""></div>
</body>
</html>"

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.HtmlElementByTagName("h2", 5000)

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
$vbLabelText   $csharpLabel

Sorgu Seçicilerini Kullanarak Elemanları Nasıl Beklerim?

İşleme süreci, aşağıdaki kod örneğinde sorgu seçici ile seçilen elemanı bekler. HtmlQuerySelector yöntemi, img tag ve id of 'myid' ile bir class of 'blablastyle' bekler.

:path=/static-assets/pdf/content-code-examples/how-to/waitfor-html-element-query-selector.cs
using IronPdf;

string htmlContent = @"
<!DOCTYPE html>
<html lang=""en"">
<head>
  <meta charset=""UTF-8"">
  <title>Test Registration of Extension</title>
  <script type=""text/javascript"">
	setTimeout(function() {
		var img = document.createElement(""img"");
		img.onload = function() {
			img.setAttribute(""id"", ""myid"");
			img.setAttribute(""class"", ""blablastyle"");
			var block = document.getElementById(""x"");
			block.appendChild(img);
		};
		img.src = ""https://www.w3schools.com/images/picture.jpg"";	// .src after .onload to ignore cached, if any
	}, 1000);
  </script>
</head>
<body>
	<h1>This is Delayed Render Test!</h1>
    <div id=""x""></div>
</body>
</html>";

ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("img#myid.blablastyle", 5000);

PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
Imports IronPdf

Dim htmlContent As String = "
<!DOCTYPE html>
<html lang=""en"">
<head>
  <meta charset=""UTF-8"">
  <title>Test Registration of Extension</title>
  <script type=""text/javascript"">
	setTimeout(function() {
		var img = document.createElement(""img"");
		img.onload = function() {
			img.setAttribute(""id"", ""myid"");
			img.setAttribute(""class"", ""blablastyle"");
			var block = document.getElementById(""x"");
			block.appendChild(img);
		};
		img.src = ""https://www.w3schools.com/images/picture.jpg"";	// .src after .onload to ignore cached, if any
	}, 1000);
  </script>
</head>
<body>
	<h1>This is Delayed Render Test!</h1>
    <div id=""x""></div>
</body>
</html>"

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("img#myid.blablastyle", 5000)

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
$vbLabelText   $csharpLabel

Ağ Aktivitesi Tamamlanmasını Nasıl Beklerim?

Kaynaklar, veri veya API çağrıları için ağ talepleri yapan web sayfaları işlerken, PDF üretmeden önce tüm ağ etkinliklerinin tamamlanmasını sağlayın. IronPDF, farklı ağ senaryolarını ele almak için birkaç yöntem sağlar.

Sıfır Ağ Aktivitesini Beklemem Gerektiğinde Ne Yapmalıyım?

Bu tür bir ağ bekleme, içerik tamamen yüklendiğini tipik olarak belirten, ağ aktivitesi olmadığında bekler. Bu, Tek Sayfa Uygulamaları (SPA) veya uzun süreli ağ talepleri veya sürekli ağ aktivitesi olmayan basit web sayfaları için uygundur.

İşleme süreci, en az 500 ms boyunca sürekli ağ aktivitesi olmadığında başlar.

:path=/static-assets/pdf/content-code-examples/how-to/waitfor-network-idle-0.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render unless there has been no network activity for at least 500ms
renderer.RenderingOptions.WaitFor.NetworkIdle0();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Render unless there has been no network activity for at least 500ms
renderer.RenderingOptions.WaitFor.NetworkIdle0()

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
$vbLabelText   $csharpLabel

İki Ağ Aktivitesinin Olmasına Ne Zaman İzin Vermeliyim?

NetworkIdle2 yöntemi, uzun süreli ağ istekleri veya kalp atışı pingleri olan web uygulamaları veya web sayfaları için uygundur. Genellikle 1-2 istek söz konusudur. Bu istekler devam ediyorsa bile, ağ bekleme olayını geçersiz kılmayacak ve en fazla ikisinin olması kabul edilebilir.

İşleme sürecine başlamadan önce, en fazla iki ağ aktivitesi en az 500 ms kalmalıdır. Bu seçenek, sabit bir sayı ağ etkinliklerini ele almak için hızlı bir yapılandırma sağlar.

:path=/static-assets/pdf/content-code-examples/how-to/waitfor-network-idle-2.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render unless there are at most 2 network activities for at least 500ms
renderer.RenderingOptions.WaitFor.NetworkIdle2();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Render unless there are at most 2 network activities for at least 500ms
renderer.RenderingOptions.WaitFor.NetworkIdle2()

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
$vbLabelText   $csharpLabel

Ağ Aktivitesi Eşiklerini Nasıl Özelleştiririm?

Birden fazla ağ isteği söz konusu olduğunda, ağ bekleme süresini ve isteklerinin sayısını özelleştirebilirsiniz ki ağ bekleme olayını geçersiz kılmaz. Bu seçenek, önceki iki yönteme uymayan belirli gereksinimlere sahip web uygulamaları veya web sayfaları için uygundur. Bu özelleştirme, farklı koşullar altında birçok kullanım durumu için çözümler sunar.

:path=/static-assets/pdf/content-code-examples/how-to/waitfor-customize-network.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render unless there are at most 5 network activities for at least 1000ms
renderer.RenderingOptions.WaitFor.NetworkIdle(1000, 5);

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

' Render unless there are at most 5 network activities for at least 1000ms
renderer.RenderingOptions.WaitFor.NetworkIdle(1000, 5)

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
$vbLabelText   $csharpLabel

Bu seviyede özelleştirme, kalıcı bağlantıları olan veya öngörülebilir arka plan ağ aktivite desenleri olan karmaşık web uygulamalarıyla çalışırken değerlidir.

Maksimum Bekleme Süresi Nasıl Ayarlanır?

JavaScript, NetworkIdle, NetworkIdle0 ve NetworkIdle2 yöntemleri, beklemenin belirsiz olmayacağından emin olmak için maksimum bir bekleme süresi ayarlamanıza izin verir. Bu yöntemlerin maxWaitTime parametresi bu amaç için hizmet eder. Bu, beklenen koşullar meydana gelmezse uygulamanızın süresiz olarak takılmasını engeller.

Tüm belirtilen zaman değerleri milisaniye cinsindendir.

Bu bekleme stratejilerini uygularken, tam içerik yüklemesini sağlamak ile makul performansı korumak arasında denge kurun. Kesin zamanlama kontrolü gerektiren uygulamalar için, eşzamansız PDF üretme tekniklerini keşfedin.

Başka neler yapabileceğinizi görmek için hazır mısınız? Kılavuz sayfasını buradan kontrol edin: Ek Özellikler veya daha gelişmiş teknikler için IronPDF ile PDF oluşturma sayfasını keşfedin.

Sıkça Sorulan Sorular

WaitFor sınıfı nedir ve neden kullanmalıyım?

IronPDF'teki WaitFor sınıfı, PDF işlemesini, varlıklar, yazı tipleri ve JavaScript yüklendikten sonra geciktirmenize olanak tanır. Bu, eksik işleme önler ve karmaşık web sayfalarının PDF'ye dönüştürülmeden önce tam yüklenmesini sağlar, bu da daha doğru ve eksiksiz PDF belgeleri elde edilmesine olanak tanır.

Farklı WaitFor seçenekleri nelerdir?

IronPDF'in WaitFor sınıfı çeşitli seçenekler sunar: PageLoad (varsayılan anında işleme), RenderDelay (milisaniye cinsinden özel gecikme), Fonts (tüm yazı tiplerini yüklemeyi bekler), JavaScript (JavaScript fonksiyonu ile işlemi tetikler), HTML öğeleri (belirli elementleri ID, ad, etiketi veya sorgu seçicisi ile bekler) ve NetworkIdle (ağ etkinliğinin durmasını bekler).

PDF işlemeden önce özel bir gecikme nasıl ekleyeceğim?

IronPDF'teki RenderDelay yöntemi ile özel bir gecikme ekleyebilirsiniz. Sadece gecikmeyi milisaniye cinsinden belirtin: `new ChromePdfRenderer { RenderingOptions = { WaitFor = WaitFor.RenderDelay(3000) } }`. Bu, özellikle JavaScript ağırlıklı içeriğin çalışması için ekstra zamana ihtiyaç duyduğunda çok kullanışlıdır.

Özel HTML öğelerinin yüklenmesini bekleyebilir miyim?

Evet, IronPDF, öğe ID'leri, adları, etiket adları veya sorgu seçicileri kullanarak özel HTML öğelerini beklemenize olanak tanır. Bu, PDF dönüşümüne başlamadan önce kritik içeriğin sayfada bulunmasını sağlar ve son PDF belgenizde eksik öğeleri önler.

NetworkIdle nedir ve ne zaman kullanmalıyım?

IronPDF'teki NetworkIdle, PDF işlemeden önce ağ etkinliğinin durmasını bekler. 0, 2 veya bir özel ağ bağlantı sayısını beklemek üzere ayarlayabilirsiniz. Bu, AJAX çağrıları veya diğer asenkron ağ istekleri yoluyla içerik yükleyen sayfalar için idealdir.

JavaScript'ten PDF işlemesini nasıl tetiklerim?

IronPDF'in WaitFor JavaScript seçeneği, PDF oluşturma sürecini bir JavaScript fonksiyonu ile tetiklemenize olanak tanır. Bu, PDF oluşturmanın ne zaman gerçekleşeceği üzerinde tam kontrol sağlar, tek sayfa uygulamaları veya karmaşık JavaScript tabanlı web siteleri için mükemmeldir, zamanlama kontrolüne hassasiyet gerektiren bir durumdur.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget Indirmeler 18,332,619 | Sürüm: 2026.4 yeni yayınlandı
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizin PDF olduğunu izleyin.